首页 > 解决方案 > 想要回显所有项目名称产品。只有最后添加的项目会得到回显。不是全部。

问题描述

我正在编写一个购物车。这只是代码的一部分。我希望能够回显购物车中的所有项目名称。只允许我回显最后添加的项目名称。

<?php
if(!empty($_SESSION["shopping_cart"]))
{$total = 0;foreach($_SESSION["shopping_cart"] as $keys => $values)
{
?>
<tr>
<td><?php echo $values["item_name"]; ?></td>
<td><?php echo $values["item_quantity"]; ?></td>
<td>$ <?php echo $values["item_price"]; ?></td>
<td>$ <?php echo number_format($values["item_quantity"] * $values["item_price"], 2);?></td>
<td><a href="index.php?action=delete&id=<?php echo $values["item_id"]; ?>"><span class="text-danger">Remove</span></a></td>
</tr>
<?php
$total = $total + ($values["item_quantity"] * $values["item_price"]);}
?>
<?php 
echo($values["item_name"]);
?> 

标签: phpcartshopping

解决方案


编辑 :

如果你想echo在你的外部foreach,你可以将你的数据推送到一个数组中,然后再推送echo

echo不喜欢array。使用 avar_dump或字符串化您的数据。

<?php
if(!empty($_SESSION["shopping_cart"])) {
     $total = 0;
     $return = [];
     foreach($_SESSION["shopping_cart"] as $keys => $values) {
 ?>
        <tr>
            <td><?php echo $values["item_name"]; ?></td>
            <td><?php echo $values["item_quantity"]; ?></td>
            <td>$ <?php echo $values["item_price"]; ?></td>
            <td>$ <?php echo number_format($values["item_quantity"] * $values["item_price"], 2);?></td>
            <td><a href="index.php?action=delete&id=<?php echo $values["item_id"]; ?>"><span class="text-danger">Remove</span></a></td>
        </tr>
<?php
        $total = $total + ($values["item_quantity"] * $values["item_price"]); 
        $return[] = $values["item_name"];
    }

    var_dump($return);
?>

上一个答案:

你必须把你echoforeach.

使用您的echo外部foreach,$values只取最后一个值。

像这样 :

<?php
if(!empty($_SESSION["shopping_cart"])) {
     $total = 0;
     foreach($_SESSION["shopping_cart"] as $keys => $values) {
 ?>
        <tr>
            <td><?php echo $values["item_name"]; ?></td>
            <td><?php echo $values["item_quantity"]; ?></td>
            <td>$ <?php echo $values["item_price"]; ?></td>
            <td>$ <?php echo number_format($values["item_quantity"] * $values["item_price"], 2);?></td>
            <td><a href="index.php?action=delete&id=<?php echo $values["item_id"]; ?>"><span class="text-danger">Remove</span></a></td>
        </tr>
<?php
        $total = $total + ($values["item_quantity"] * $values["item_price"]); 
        echo($values["item_name"]);
    }
?>

推荐阅读