Php 仅返回第一个字符和额外值的数组值
我想在手推车里展示比萨配料。 我已经将比萨饼和配料存储为多维数组,这部分很好,下面是一个使用print_r()的1个项目和2个配料的示例 我已经在网上和软件上搜索过了,但仍然摸不着头脑 正如您在下面的主代码中所看到的,我在每个浇头上都使用了print_r(),因此我可以检查两个浇头的数组,在我看来,它们的显示与我预期的一样Php 仅返回第一个字符和额外值的数组值,php,arrays,session,multidimensional-array,Php,Arrays,Session,Multidimensional Array,我想在手推车里展示比萨配料。 我已经将比萨饼和配料存储为多维数组,这部分很好,下面是一个使用print_r()的1个项目和2个配料的示例 我已经在网上和软件上搜索过了,但仍然摸不着头脑 正如您在下面的主代码中所看到的,我在每个浇头上都使用了print_r(),因此我可以检查两个浇头的数组,在我看来,它们的显示与我预期的一样 Array ( [id] => 1 [des] => Beef [qty] => 1 ) 及 代码: $cart = $_SESSION["ca
Array ( [id] => 1 [des] => Beef [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>';
}
$cart=$\u会话[“cart”];
$c=0;
foreach($cart作为$value)
{
如果($c==0){
回声';
$c=1;
}否则{
回声';
$c=0;
}
回显'.$value[name].
';
//因为有11种配料
对于($x=1;$x 1[des]=>牛肉[qty]=>1)
1
B
1
数组([id]=>2[des]=>Chicken[qty]=>1)
2
C
1
print_r($cart)的输出返回这个值
数组([Special Pizza2]=>Array([id]=>22[name]=>Special Pizza[quantity]=>1[des]=>top1]=>Array([id]=>1[des]=>Beef[quantity]=>1[top2]=>Array([id]=>2[des]=>Chicken[quantity]=>1))
请告诉我哪里出了问题,感谢所有的帮助!您不需要这个循环:
foreach($pizza as $return)
{
echo $return[des] .'<br>';
}
注意,总是引用这样的数组索引:$pizza['des']
不要这样做:$pizza[des]
使用引号-$value['name']
,而不是$value[name]
-对所有其他数组元素引用执行相同的操作,例如$return['des']
,$value['des']
好极了,你一针见血!我用以下内容替换了它,删除了额外的循环并添加了一个'if qty>0',这样它就不会无缘无故地给我换行,并且显示得非常完美,谢谢!code$qty=$pizza['qty'];if($qty>0){echo$pizza['dec'.
';}
谢谢!!无需分配额外变量,只需执行以下操作:if($pizza['qty']>0){echo$pizza['dec'].
';}
$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>';
}
foreach($pizza as $return)
{
echo $return[des] .'<br>';
}
echo $pizza['des'];