给定以下代码:
session_start();
$cart = $_SESSION['cart'];
print_r($_SESSION['cart']);
然后我可以看到我想访问的内容:
阵列([153c740f526f2fa8aac9e1ddfdce2716]=>阵列([deal_id]=>38[variation_id]=>[variation]=>[quantity]=>6[data]=>……
还有更多,但这是最基本的。。。
我想做的是获取并设置数量:
所以我尝试过:
$cart = $_SESSION['cart'];
for ($i = 0 ; $i < count($cart) ; $i ++)
{
echo "The session variable you want" . $_SESSION['cart'][$i]['deal_id'];
echo "<br>";
}
但是没有输出,我做错了什么?
foreach ($_SESSION['cart'] as $k => $data) {
echo "The session variable you want" . $data['deal_id'];
$_SESSION['cart'][$k]['deal_id'] = 'new id';
}
根据您刚刚打印的数据,在"cart"中,数组是关联的,而不是数字的。
要遍历关联数组,请使用foreach和$someArray as $key => $val
表达式
购物车没有按序列索引进行索引,您不能以这种方式循环它,您需要使用foreach循环:
foreach($_SESSION['cart'] as $index => $value)
echo "Var = " . $value['deal_id'];
如果要设置值,请通过引用循环值
foreach($_SESSION['cart'] as $index => &$value)
{
echo "Var = " . $value['deal_id'];
$value['deal_id'] = 'newValue';
}
您将通过使用foreach
循环来简化事情
foreach ($_SESSION['cart'] as $k => $data) {
echo "The session variable you want" . $data['deal_id'];
echo "<br>";
$_SESSION['cart'][$k] = "new Value";
}
使用foreach
循环迭代$_SESSION
数组:
foreach($cart as $k=> $value){
echo "The session variable you want" . $data['deal_id']. "<br>";
$_SESSION['cart'][$k] = "newValueGoesHere"; //setting the new value
}
使用foreach语句
foreach($cart as $key=>$value){
echo "The session variable you want" . $value['deal_id'];
echo "<br>";
}