Php foreach,打印清单

时间:2017-02-09 13:18:02

标签: php

尝试使用html和php打印出列表中的数组。 我用它的代码:

<ul>
<?php
    foreach ($arrayData as $cart):
        echo '<li>',$cart['name'], $cart['price'], $cart['amount'],'</li>';
    endforeach;
?>
</ul>

这样做了,它也使得网站的其余部分(页脚)根本无法显示。

此外,这会产生同样的问题,并且不会显示网站的其余部分。

<?php
    foreach ($arrayData as $cart):
        echo $cart['name'];
    endforeach;
?>

如果我插入使用var_dump并打印出$ cart,我会将孔阵列引出,所以我在数组中得到了数据。

var_dump代码:

<?php
    foreach ($arrayData as $cart):
        var_dump($cart);
    endforeach;
?>

var_dump的输出:

object(Product)#1 (4) 
{ 
    ["id":"Product":private]=> string(1) "1" 
    ["name":"Product":private]=> string(8) "Xbox One"
    ["price":"Product":private]=> string(1) "0" 
    ["amount"]=> int(55) 
}

2 个答案:

答案 0 :(得分:3)

$data是一个对象而不是数组。

$array['key']是访问数组中元素的符号,但$object->key是对象的元素。

试试这个:

foreach ($arrayData as $cart):
    echo '<li>' . $cart->name . ',' . $cart->price . ',' . $cart->amount . '</li>';
endforeach;

如果这不起作用(由于元素的私有性),您可能必须在对象类中声明getName()getPrice()getAmount()等函数文件,并使用它们:

foreach ($arrayData as $cart):
    echo '<li>' . $cart->getName(). ',' . $cart->getPrice(). ',' . $cart->getAmount(). '</li>';
endforeach;

对象类文件中函数getName()的声明示例:

public function getName() {
    return $this->name;
}

答案 1 :(得分:-1)

您确定$ arrayData不是对象数据吗? 在这种情况下,请尝试使用$ cart-&gt; name。