Php 为什么此数组会打印“0”;数组";而不是一个值?(菲律宾)

Php 为什么此数组会打印“0”;数组";而不是一个值?(菲律宾),php,html,arrays,web,Php,Html,Arrays,Web,我正在学习PHP和做一个基本的电子商务购物车的实践。我遇到了一个困扰我的问题。我制作了一个数组来显示购物者购物车中单个商品的当前数量,而不是显示它显示的“数组”值 下面是我正在使用的: <?php if(isset($_SESSION['Cart'])){ $sql="SELECT * FROM products where Product_ID IN ("; foreach($_SESSION['Cart'] as $id => $value){

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

x


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

我认为这一行代码有问题:

$_SESSION['Cart'][$row['Product_ID']['quantity']]
您将从
$\u会话['Cart']
获取一个值,其中包含
$row
的维度数组。我认为
$row['Product\u ID']
不是数组,而是
字符串或
int
,因此调用
$row['Product\u ID']['quantity']
是一个问题。

基于您的反馈 如果尝试
print\r($\u SESSION['Cart'][$row['Product\u ID']['quantity']]['quantity])
将为您提供
数组([quantity]=>1)

然后,您可以回显
$\u会话['Cart'][$row['Product\u ID']['quantity']['quantity]['quantity]
以提供
1

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


请尝试上面的代码,并告知是否有帮助

。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果选择PDO,.@user3807604对打印“Array”的变量执行
print_r()
而不是
echo
。查看数组的结构。从那里你就知道该怎么办了。例如:
print\r($\u SESSION['Cart'][$row['Product\u ID']['quantity']]])
别忘了把键放在数组的末尾,例如
$arr[0]
$arr['quantity']]
@Rybo111打印时,我得到如下结果:橙汁x数组([quantity]=>1)名称(橙汁)显示正确,它正在计算数量,但如果我把它从打印切换回echo,它仍然像橙汁x数组。为什么它不显示它跟踪的数量呢?不管你的数组是什么,你都需要按照@RaymondAtivie所说的做,然后打印它。这将为您提供价值关联的密钥。然后,您需要将
['key\u here']
添加到您尝试回显的变量的末尾。