2016-12-20 2 views
0

У меня есть переменная session с именем $_SESSION['items'], которая представляет собой массив. Он хранит элементы в массивах внутри своего массива. Например:Confused with session и array

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

Это показывает, что в массиве элементов имеется 1 продукта 2.

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

Это показывает, что есть 1 пункта 2 и 1 пункта 4 в массиве предметов ..

Как это проверить, если конкретная переменная в массиве элементов? Например, мне нужно знать, есть ли элемент 4 или элемент 1 в этом массиве, поэтому я могу показать пользователю другую страницу в зависимости от того, имеет ли этот элемент в своем массиве или нет. Я так запутался в массивах, что я всегда называю неопределенные смещения и тому подобное.

+0

Вам понадобится петля, например, foreach. – Evert

+0

Подробнее о PHP-массивах: http://php.net/manual/en/language.types.array.php – axiac

+1

'foreach ($ _ SESSION ['items'] as $ key => $ item) {}' нравится ? – Kaboom

ответ

2

Выяснил это. имел мозговой пердит. благодаря

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

// Попробуйте использовать Поиск массива хороший способ

+0

см. Оптимизированный метод array_search – webDev

1

Try следующий это поможет вам не попасть в положение, в котором нашли и возвращать ничего, если не найден

Вам не нужно перебрать.

// 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 
}