【发布时间】:2019-01-11 00:39:45
【问题描述】:
我正在尝试在购物车中展示披萨配料。 我已经将比萨饼和配料存储为多维数组,这部分很好,这是一个使用 print_r() 的 1 个项目和 2 个配料的示例
Array ( [Special Pizza2] => Array ( [id] => 22 [name] => Special Pizza [quantity] => 1 [des] => [top1] => Array ( [id] => 1 [des] => Beef [qty] => 1 ) [top2] => Array ( [id] => 2 [des] => Chicken [qty] => 1 ) ) )
我在网上和 SOF 上搜索过,但仍然摸不着头脑。
正如您将在下面的主代码中看到的那样,我在每个浇头上都使用了 print_r(),因此我可以检查数组中的 2 个浇头,并且在我看来,它们似乎按我的预期显示;
Array ( [id] => 1 [des] => Beef [qty] => 1 )
与
Array ( [id] => 2 [des] => Chicken [qty] => 1 )
代码:
$cart = $_SESSION["cart"];
$c = 0;
foreach($cart as $value)
{
if($c==0){
echo '<div class="crtitm" style="background-color:#e6e6e6;">';
$c = 1;
}else{
echo '<div class="crtitm">';
$c = 0;
}
echo '<b>' .$value[name]. '</b><br>';
//11 because there are 11 toppings
for ($x = 1; $x <= 11; $x++) {
$top = "top".$x;
$pizza = $value[$top];
print_r($pizza);
foreach($pizza as $return)
{
echo $return[des] .'<br>';
}
}
echo $value[des] .'<br>';
echo '</div>';
}
现在由于某种原因我的代码正在返回
1
B
1
与
2
C
1
所以我知道这是返回顶部的“id”,然后是“des”的第一个字符,然后是“qty”。
我希望我的代码只显示“Des”+换行符,然后显示下一个顶部,依此类推
供参考,总输出为;
特色披萨
数组 ( [id] => 1 [des] => 牛肉 [qty] => 1 )
1
乙
1
数组 ( [id] => 2 [des] => 鸡 [qty] => 1 )
2
C
1而 print_r($cart) 的输出返回这个;
Array ( [Special Pizza2] => Array ( [id] => 22 [name] => Special Pizza [quantity] => 1 [des] => [top1] => Array ( [id] => 1 [des] => 牛肉 [qty] => 1 ) [top2] => 数组 ( [id] => 2 [des] => 鸡肉 [qty] => 1 ) )
请告诉我哪里出错了,感谢大家的帮助!
【问题讨论】:
-
使用引号 -
$value['name'],而不是$value[name]- 对所有其他数组元素引用执行相同操作,例如$return['des'],$value['des']
标签: php arrays session multidimensional-array