Php 尝试打印多维数组中的值以形成预设值
我目前正在从事一个项目,我目前的目标是在最终的结帐表单输入上打印关于特定用户的信息 首先,我通过公共功能收集特定用户的信息:Php 尝试打印多维数组中的值以形成预设值,php,mysql,templates,controller,Php,Mysql,Templates,Controller,我目前正在从事一个项目,我目前的目标是在最终的结帐表单输入上打印关于特定用户的信息 首先,我通过公共功能收集特定用户的信息: public function getUserAddress($dbh) { $sql = "SELECT street, zip, city FROM address WHERE user_id=:user"; $stmt = $dbh->prepare($sql); $stmt->bindParam(':user', $this-&
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'];
然而,打印出来似乎几乎是不可能的。当我倒垃圾的时候
$templateData['user']['address']
我似乎只得到了2个空字符串,其他什么都没有
这只是我的Checkout.controller中的代码,但不知何故,这些信息似乎没有在我的模板页面中找到。所有路线和包括都是正确的,因此dw对此表示怀疑
我对这一切都很陌生,所以我非常感谢能得到的任何帮助
信息应如何呈现的图像
因此在本例中:“Postort”=“City”&“GatuaAddress”=“Street”将返回一个关联数组数组;因此,要访问各个元素,您需要以下内容:
$userAdress[0]['street']." ".$userAddress[0]['city']." ".$userAddress[0]['zip']
我总是可以具体地定义每一个,尽管这似乎有些牵强。大概是这样的:
$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'];
我基本上是在寻找另一个不需要太多重复的解决方案。是的,我试过这样做。甚至添加了另一个地址,因为我将地址分为“主”地址和“次”地址。一行,与您编写的一行相同,每行上都有[1]而不是[0]。虽然当我将其全部转储出来时,整个地址(包括Street、Zip和City)都在一个字符串中,而且由于我想将它们分开,所以更难。对于您给出的代码,这绝对是访问值的正确方法。我不知道你说它们都在一条线上是什么意思?这就是代码的作用。。。也许你可以编辑你的文章,更详细地了解你想要的输出是什么?是的,我已经编辑了我的文章,并添加了一幅关于我希望信息如何呈现的图片。显然,我的代码中存在som问题,这使得我无法在多个输入之间拆分值。你会怎么做呢?看起来你可能想要像
foreach($userAddress作为$address)$templateData['user']['address'][]=$address
然后当您将数据输出到您将使用的表单中时(例如用于Postort)echo$templateData['user']['address'][0]['city']代码>。我担心,如果看不到更多的代码,就很难提供更多的建议……您可以用foreach($userAddress as$address)$templateData['user']['address'][=$address代码>