Моя простая корзина покупок хранит идентификаторы продуктов в массиве сеансов.Проверка массива сеанса для значения (PHP in_array)
Я пытаюсь настроить оператор if/else, чтобы включить/отключить мою кнопку «Добавить в корзину» на основе идентификатора продукта в массиве или нет.
<?php
session_start();
//Show cart array
print_r($_SESSION['cart']);
echo '<br><br>';
//Return "yes" or "no"
$panier = $_SESSION['cart'];
$produit = "5";
if (in_array($produit, $panier)) {
print "yes man!";
}
else {
print "no man!";
}
?>
Я убедившись, что 5 является частью значения массива, отображая их этой тестовой странице, а вторая часть всегда возвращает «ни один человек!»
выглядит достаточно простым для меня. Что я делаю не так ?
print_r Вывод команды
5,5
no man!
это потому, что я добавил 2 "5" идентификатор продукта в моей корзине
Если изменить эту строку
print_r($_SESSION['cart']);
для
print_r($_SESSION);
Я получаю
Array ([cart] => 5,3,3,3,3,3,3,3,2)
no man!
Показать вывод 'print_r ($ _ SESSION ['cart']);' –
'print_r' не может выводить' 5,5', он должен выдавать результат, похожий на 'Array (cart => Array ([0] => 5 [1] => 5)) '. Однако, если это действительно дает '5,5', значит, вы помещаете его в строку, и поэтому' in_array' не работает. И, пожалуйста, не отправляйте обновления на свои вопросы в качестве ответов - скорее опубликуйте его как комментарий или обновите вопрос. –