为什么这个数组打印"数组"而不是一个值?(PHP)


Why does this array print "array" instead of a value? (PHP)

我正在学习PHP和做一个基本的电子商务购物车练习。我遇到了一个难倒我的问题。我创建了一个数组来显示购物者购物车中单个商品的当前数量,但不是显示值,而是显示"数组"。"

下面是我使用的:

<?php
if(isset($_SESSION['Cart'])){
    $sql="SELECT * FROM products where Product_ID IN (";
    foreach($_SESSION['Cart'] as $id => $value){
        $sql.=$id.",";
        }
        $sql=substr($sql, 0, -1).") ORDER BY Category ASC";
        $query=mysql_query($sql);
        while($row=mysql_fetch_array($query)){
        ?>
            <p><?php echo $row['Name']?> x <?php echo $_SESSION['Cart'][$row['Product_ID']['quantity']] ?></p>
        <?php
        }
}else{
    echo "<p>There are no products selected</p>";
}
?>

我不确定这是否是确切的问题所在。我的网站的其余部分来自这里(索引)和这里(产品页面),如果有人愿意和我一起解决问题。

根据您的反馈如果尝试print_r($_SESSION['Cart'][$row['Product_ID']['quantity']]['quantity])得到Array ( [quantity] => 1 )

则可以回显$_SESSION['Cart'][$row['Product_ID']['quantity']]['quantity]得到1

但我不认为这是初衷。我认为你真正的问题是当你给数组赋值时,键可能不匹配。

试试上面的代码,看看是否有帮助

我认为这行代码有问题:

$_SESSION['Cart'][$row['Product_ID']['quantity']]

你从$_SESSION['Cart']得到一个值,那里有$row的维度数组。我认为$row['Product_ID']不是一个数组,而是stringint,所以调用$row['Product_ID']['quantity']是一个问题。