对会话和数组感到困惑

时间:2016-12-20 16:29:12

标签: php arrays session

我有一个名为RandomShuffleQueue的会话变量,它是一个数组。它将项目存储在数组中的数组中。例如:

$_SESSION['items']

这表明items数组中有1个产品2。

Array ( [0] => Array ( [0] => 2 [1] => 1 ) )

这表明项目2中有1项,项目4中有1项。

我如何检查items数组中是否有特定变量?例如,我需要知道项目4或项目1是否在此数组中,因此我可以向用户显示不同的页面,具体取决于他们是否在数组中包含此项目。我对数组感到困惑,我总是称之为未定义的偏移量等。

2 个答案:

答案 0 :(得分:2)

想出来。有一个脑屁。感谢

foreach($_SESSION['items'] as $key => $item) {
    if($item[0] == $item_id) {
        echo "ITEM IS IN HERE";
    }
}

//尝试使用数组搜索方式

答案 1 :(得分:1)

尝试以下操作将帮助您找到找到的位置,如果找不到则返回任何内容

你不需要循环。

// this will search $item_id in $_SESSION['items']
$key = array_search($item_id, array_column($_SESSION['items'], 0)); //here 0 is position, see array_search
print_r($key);
if($key){
//yes found at key so that you can easily get that item again without looping
}