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

时间:2014-07-05 11:33:48

标签: php html arrays web

我正在学习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>";
}
?>

我不确定这是不是确切问题所在。我的网站的其余部分来自here(索引)和here(产品页面),如果有人愿意对我进行问题排查。

2 个答案:

答案 0 :(得分:0)

我认为这行代码存在问题:

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

您从$_SESSION['Cart']获得的值为$row的维度数组$row['Product_ID']。我认为string不是数组,而是int$row['Product_ID']['quantity'],因此调用{{1}}是一个问题。

答案 1 :(得分:0)

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

然后你可以回复$_SESSION['Cart'][$row['Product_ID']['quantity']]['quantity]给你1

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

尝试上面的代码,让我们知道它是否有帮助