[英]PHP in_array and array_key_exists not working for SESSION
<?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]中是否有類似的商品存儲,但是盡管我確保該值確實存儲在$ _SESSION中,但它僅返回false。
當我進行一些檢查時,由於我的$ _SESSION具有多維數組,因此我應該使用array_key_exists,這是我的代碼
if(array_key_exists($_GET['code'],$_SESSION["cart_item"])){
echo "hiiii";
}else{
echo "byeee";}
但是它仍然返回false。 誰能指出我的錯誤?
順便說一句,我對此並不陌生,在此先感謝。
您需要將if(!empty($_SESSION["cart_item"]))
更改為if(isset($_SESSION["cart_item"]))
。 還檢查$ _SESSION是否為簡單數組,為了與in_array
匹配,您需要像我分配的數組。
正如您提到的_si因為我的$ 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
以及在哪里使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.