Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Session - Fatal编程技术网

Php 回显会话数组值-警告非法字符串偏移量

Php 回显会话数组值-警告非法字符串偏移量,php,arrays,session,Php,Arrays,Session,我正在尝试使用会话将购物车功能添加到网站中,项目已存储到会话中,但我收到以下警告:当我尝试回显数组值时,字符串偏移量“pcode”非法 $itemArray = array('pcode'=>$_GET['code']); $_SESSION['cart_item'] = $itemArray; 这就是我将数组存储到会话中的方式 foreach ($_SESSION['cart_item'] as $item){ echo $item['pcode'];

我正在尝试使用会话将购物车功能添加到网站中,项目已存储到会话中,但我收到以下警告:当我尝试回显数组值时,字符串偏移量“pcode”非法

$itemArray = array('pcode'=>$_GET['code']);
$_SESSION['cart_item'] = $itemArray;
这就是我将数组存储到会话中的方式

foreach ($_SESSION['cart_item'] as $item){
                echo $item['pcode'];
                }

我就是这样回显我的存储阵列的。我对PHP很陌生,一直在尝试从头开始建立一个网站。我想知道为什么我的页面上不断出现警告。谢谢

只有$item会给您带来价值:

$itemArray = array('pcode'=>'aaa');
$_SESSION['cart_item'] = $itemArray;
foreach ($_SESSION['cart_item'] as $key=>$item){
    echo $key; // this will print "pcode"
    echo $item; // this will print "aaa"
}
要将数据追加到会话中,请执行以下操作:

$data = $_SESSION['cart_item']; // first get session data into any array
$data['newdata'] = 'newvalue'; // now add data 
$_SESSION['cart_item'] = $data; // again write session with newly added array

只有$item可以为您提供价值:

$itemArray = array('pcode'=>'aaa');
$_SESSION['cart_item'] = $itemArray;
foreach ($_SESSION['cart_item'] as $key=>$item){
    echo $key; // this will print "pcode"
    echo $item; // this will print "aaa"
}
要将数据追加到会话中,请执行以下操作:

$data = $_SESSION['cart_item']; // first get session data into any array
$data['newdata'] = 'newvalue'; // now add data 
$_SESSION['cart_item'] = $data; // again write session with newly added array

echo$item
在使用foreach时,您将获得$item['pcode']值,这将为您提供key=>值对,因此'pcode'是key,而$\u get['code']是foreach中的值,并且由于您仅使用$item,它将指向$\u get['code']值。

echo$item
您将获得$item['pcode']值当您使用foreach时,它会为您提供key=>value对,因此'pcode'是key,$\u GET['code']在foreach中是它的值,并且由于您只使用$item,它将指向$u GET['code']的值。

数组项中没有带
pcode
的键

$_GET['code']='www';
$itemArray = array('pcode'=>$_GET['code']);
$_SESSION['cart_item'] = $itemArray;
foreach ($_SESSION['cart_item'] as $item){
                echo $item;
                }
有一种方法可以检查是否存在任何键
array\u key\u存在

bool array_key_exists ( mixed $key , array $array )

查找内容的任何简单方法都是打印数组并死亡,查看数组的内容是否正确,修复并重试。

数组项中没有带
pcode
的键

有一种方法可以检查是否存在任何键
array\u key\u存在

bool array_key_exists ( mixed $key , array $array )

查找内容的任何更简单的方法是打印数组并死亡,查看数组的内容是否正确,修复并重试。

尝试此foreach($\u会话['cart\u item']as$key=>$item){echo$key.-->'.$item;}尝试此foreach($\u会话['cart\u item']as$key=>$item){echo$key.-->'.$item;}谢谢!我现在明白了这个想法及其工作原理。顺便说一句,每次我尝试将一个新项目添加到$\u会话['cart\u item']时,它似乎都会覆盖以前的项目,无论如何都要解决这个问题?您如何将数据添加到会话>?$itemArray=array('pcode'=>'aaa');$\u会话['cart\u item']=$itemArray;与我发布的方式相同,但我想我需要一个二维数组,对吗?@kojh我已经更新了上面关于将数据添加到会话中的答案。尝试一下。谢谢你的帮助,但我使用了array\u merge()来完成:)谢谢!我现在明白了这个想法及其工作原理。顺便说一句,每次我尝试将新项目添加到$\u会话['cart\u item']它似乎覆盖了以前的项目,无论如何都可以解决这个问题?如何将数据添加到会话>?$itemArray=array('pcode'=>'aaa');$\u会话['cart\u item']=$itemArray;与我发布的方式相同,但我认为我需要一个二维数组,对吗?@kojh我已经更新了上面关于将数据添加到会话中的答案。尝试一下。谢谢你的帮助,但我使用了array_merge()来完成:)