尝试打印多维数组中的值以形成预设值

vx6bjr1n  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(484)

我目前正在做一个项目,我当前的目标是在最终的 checkout 表单输入中打印有关特定用户的信息。
首先,我通过一个公共函数收集特定用户的信息:

public function getUserAddress($dbh)
{
    $sql = "SELECT street, zip, city FROM address WHERE user_id=:user";
    $stmt = $dbh->prepare($sql);
    $stmt->bindParam(':user', $this->uid);
    $stmt->execute();
    $userAddress = $stmt->fetchAll(PDO::FETCH_ASSOC);
    $this->userAddress = $userAddress;
    return $this->userAddress;
}

然后我将信息存储在一个名为$useraddress的变量中

$userAddress = $user->getUserAddress($dbh);

由于用户有两个地址,都带有“street”、“city”和“zip”,所以我将这两个数组都存储在$templatedata中。这样我就可以指定应该在哪个输入标记中打印出什么索引,而不必为每个插槽创建新函数。

$templateData['user']['address'] = $userAdress['street']." ".$userAddress['city']." ".$userAddress['zip'];

然而,打印出来似乎几乎是不可能的。当我var_dump$templatedata['user']['address']时,我似乎只得到了2个空字符串,其他什么都没有。
这只是我checkout.controller中的代码,但不知怎么的,这些信息似乎没有在我的模板页中找到。所有的路线和包含都是正确的,所以请注意这一点。
我对这一切都很陌生,所以我很感激能得到的任何帮助!
信息应如何呈现的图像https://gyazo.com/40fa06832207bd785ee038af4962bb1e
所以在这个例子中:“postort”=“城市”和“gatuadress”=“街道”

ma8fv8wu

ma8fv8wu1#

我总是可以具体地定义每一个,尽管这似乎有些牵强。像这样:

$templateData['user']['address'][0]['street'] = $userAddress[0]['street'];
 $templateData['user']['address'][0]['city'] = $userAddress[0]['city'];
 $templateData['user']['address'][0]['zip'] = $userAddress[0]['zip'];

 $templateData['user']['address'][1]['street'] = $userAddress[1]['street'];
 $templateData['user']['address'][1]['city'] = $userAddress[1]['city'];
 $templateData['user']['address'][1]['zip'] = $userAddress[1]['zip'];

我基本上是在寻找另一个不需要太多重复的解决方案。

piok6c0g

piok6c0g2#

PDO::fetchAll(PDO::FETCH_ASSOC) 将返回关联数组的数组;因此,要访问各个元素,您需要:

$userAdress[0]['street']." ".$userAddress[0]['city']." ".$userAddress[0]['zip']

相关问题