Я пытаюсь проверить, указан ли массив в массиве. Я пытаюсь добавить имя продукта и URL-адрес сессии, сессия будет содержать все продукты, посетившие посетителя, но я не хочу, чтобы он дважды добавлял один и тот же продукт, следовательно, валидацию. Поэтому, если продукт уже находится в массиве, я хочу, чтобы он ничего не делал, но если он еще не принадлежит массиву, его нужно добавить. Это до сих пор. Единственной проблемой является проверка.проверка наличия массива в массиве
$viewed_product_url = $viewed_base.$_SERVER['REQUEST_URI'];
if(!isset($_SESSION['products'])) {
$_SESSION['products'] = array('product'=>$products_name,'url'=>$viewed_product_url);
} else {
$found = false;
foreach($_SESSION['products'] as $each_item) {
while(list($key,$value)=each($each_item)) {
if($key == 'product' && $value == $products_name) {
$found = true;
}
}
}
if($found==false){
echo 'found';
$_SESSION['products'][] = array('product'=>$products_name,'url'=>$viewed_product_url);
}
}
эти ошибки я получаю
Предупреждение: Переменные, передаваемые в каждой() не является массивом или объектом в C: \ XAMPP \ HTDOCS \ клиентов \ MSL \ product.php на линии 10
Предупреждение: переменная передается каждому() не является массивом или объектом в C: \ XAMPP \ HTDOCS \ клиенты \ MSL \ product.php на линии 10 найдено
Так что я просто хочу знать, как вы может проверить, находится ли массив уже в многомерном массиве. Или, если есть другие альтернативы для достижения того, что я хочу здесь.
Вы лечение '$ _SESSION [ 'продуктов'] 'как 2-мерный массив. Но когда вы его инициализируете, это всего лишь 1-мерный ассоциативный массив. – Barmar