Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何访问存储在会话阵列中的信息?_Php - Fatal编程技术网

Php 如何访问存储在会话阵列中的信息?

Php 如何访问存储在会话阵列中的信息?,php,Php,给定以下代码: session_start(); $cart = $_SESSION['cart']; print_r($_SESSION['cart']); 然后我可以看到我想要访问的内容: 数组([153c740f526f2fa8aac9e1ddfdce2716]=>数组([deal\u id]=>38[variation\u id]=>[variation]=>[quantity]=>6[data]=>) 还有更多,但这是最基本的 我想做的是获取并设置数量: 所以我试过: $cart

给定以下代码:

session_start();

$cart = $_SESSION['cart'];

print_r($_SESSION['cart']);
然后我可以看到我想要访问的内容:

数组([153c740f526f2fa8aac9e1ddfdce2716]=>数组([deal\u id]=>38[variation\u 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>";

}
$cart=$\u会话['cart'];
对于($i=0;$i”;
}

但是没有输出,我做错了什么?

根据您刚才打印的数据,在“cart”中,数组是关联的,而不是数字的

foreach ($_SESSION['cart'] as $k => $data) {
    echo "The session variable you want" . $data['deal_id'];
    $_SESSION['cart'][$k]['deal_id'] = 'new id';
}

要在关联数组中进行迭代,请使用foreach with
$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($cart as $key=>$value){
    echo "The session variable you want" . $value['deal_id'];
    echo "<br>";
}
foreach($cart as$key=>$value){
echo“您想要的会话变量”。$value['deal_id'];
回声“
”; }
您将通过使用
foreach
循环简化事情

foreach ($_SESSION['cart'] as $k => $data) {
    echo "The session variable you want" . $data['deal_id'];
    echo "<br>";
    $_SESSION['cart'][$k] = "new Value";
}
foreach($\u会话['cart']作为$k=>$data){
echo“您想要的会话变量”。$data['deal_id'];
回声“
”; $\会话['cart'][$k]=“新值”; }
使用
foreach
循环迭代
$\u会话
数组:

foreach($cart as $k=> $value){

echo "The session variable you want" . $data['deal_id']. "<br>";
$_SESSION['cart'][$k] = "newValueGoesHere"; //setting the new value

}
foreach($k=>cart$value){
echo“您想要的会话变量”。$data['deal_id']。”
; $\会话['cart'][$k]=“newvaluegoesher”;//设置新值 }
这可能适用于检索,但我也希望能够设置值。$\u会话['cart'][$k]['deal\u id']=$newData;为什么要使用如此复杂的方法来更新值?只需使用
&$data
语法通过引用访问元素,然后您就可以直接更新它,这既简单又快速。如何在关联数组中设置数据?只需将其设置为某个值即可。我不会在这里编写它,因为实际上每个答案都有该值准备好了。:)