<?php
session_start();
if(!empty($_SESSION["cart_item"])) {
if(in_array($_GET['code'],$_SESSION["cart_item"])){
echo "hiiii";
}else{
echo "byeee";}
}else {
$itemArray = array($_GET['code']=>array('pcode'=>$_GET['code']));
$_SESSION["cart_item"] = $itemArray;
}
?>
我试图使用in_array检查$ _SESSION [cart_item]中是否有类似的商品商店,但它只返回false,尽管我确保该值确实存储在$ _SESSION中。
当我进行一些检查时,由于我的$ _SESSION有一个多维数组,我应该使用array_key_exists,这是我的代码
if(array_key_exists($_GET['code'],$_SESSION["cart_item"])){
echo "hiiii";
}else{
echo "byeee";}
但它仍然返回false。有谁可以指出我的错误?
顺便说一句,我是新手,并提前致谢。
答案 0 :(得分:2)
您需要将if(!empty($_SESSION["cart_item"]))
更改为if(isset($_SESSION["cart_item"]))
。同时检查$ _SESSION是否是一个简单的数组,为了与in_array
匹配,你需要有像i assign这样的数组。
当你提到_since我的$ SESSION有一个多维数组时,如果你使用的是in_array
,请确保你的数组是一个维度。
让变量喜欢这个:
$_SESSION["cart_item"] = array('1', '2', '3');
$_GET['code'] = '3';
if(isset($_SESSION["cart_item"])) {
if(in_array($_GET['code'], $_SESSION["cart_item"])){
echo "hiiii";
}else{
echo "byeee";}
}else {
$itemArray = array( $_GET['code'] => array('pcode'=> $_GET['code']) );
$_SESSION["cart_item"] = $itemArray;
}
结果: hiiii
现在是时候使用array_key_exists
。
让我们改变阵列:
$_SESSION["cart_item"] = array('1' => array(6, 7, 8), '2' => array(2, 4, 6), '3' => array(1, 5, 9));
if(array_key_exists($_GET['code'], $_SESSION["cart_item"])){
echo "hiiii from key exists";
}else{
echo "byeee";
}
结果:来自密钥的hiiii
注意:我认为您了解如何使用以及在何处使用
in_array
和array_key_exists
。