Intereting Posts
Как я могу загрузить доступ к файлам вне каталога public_html? Drupal 6: Views: перечисление таксономических терминов с помеченными узлами под Примечание. Неопределенный индекс: HTTP_REFERER Имя динамической функции в php Использование EntityRepository :: findBy () с отношениями «многие-ко-многим» приведет к E_NOTICE в Доктрине Легкий способ защиты паролем php-страницы PHP / MYSQL Javascript – Вставьте значение строки, вытащенную из базы данных в текстовое поле, кнопкой проблемы с плагином проверки JQuery и файлом ввода Как получить заголовки из последнего перенаправления с функциями curl PHP? Magento: Форма категории администратора не отображается. Как построить «режим обслуживания» в Codeigniter? Хранение изображений / данных в MySQL и соглашениях об именах Оптимизация скорости разбивки по страницам в Doctrine 2.2 + Zend Framework Может ли кто-нибудь указать мне на хорошую реализацию пароля хеширования PHP / MySQL? как получить клиентский путь для файла с расширением

unset multimimensional array

У меня с тобой какое-то время. У меня есть многомерный массив, который я храню в сеансе.

$d1 = array(1,2,3,4); $d2 = array(1,2,3,4,5,6); $d3 = array(1,2,3,4,5,6,7,8); $d4 = array(1,2,3,4,5); $_SESSION['array1'] = array($d1,$d2,$d3,$d4); 

то, что я хочу сделать, – удалить массив $ d2 из массива session1

но когда я делаю что-то вроде этого

 unset($_SESSION['array1'][1]); 

вы могли бы подумать, что $ _SESSION ['array1'] будет тогда = array ($ d1, $ d3, $ d4);

однако то, что это делает, фактически отменяет всю переменную сеанса.

Тогда, если я попробую что-то вроде

 foreach ($_SESSION['array1'] as $k => $v) { echo "The Key is $k: The Value is $v"; } 

однако это дает мне ошибку

Недопустимый аргумент для foreach ()

Единственный вывод, к которому я могу прийти, – это то, что переменная сеанса полностью отключена, а не только тот, что конкретный ключ удаляется из массива.

есть ли способ, которым я могу отключить определенное значение, содержащееся в массиве, который является частью переменной сеанса?

Related of "unset multimimensional array"

Код, который вы представляете, работает как ожидалось:

 header("Content-Type: text/plain"); session_start(); $d1 = array(1,2,3,4); $d2 = array(1,2,3,4,5,6); $d3 = array(1,2,3,4,5,6,7,8); $d4 = array(1,2,3,4,5); $_SESSION['array1'] = array($d1,$d2,$d3,$d4); unset($_SESSION['array1'][1]); print_R($_SESSION); с header("Content-Type: text/plain"); session_start(); $d1 = array(1,2,3,4); $d2 = array(1,2,3,4,5,6); $d3 = array(1,2,3,4,5,6,7,8); $d4 = array(1,2,3,4,5); $_SESSION['array1'] = array($d1,$d2,$d3,$d4); unset($_SESSION['array1'][1]); print_R($_SESSION); 

Печать:

 Array ( [array1] => Array ( [0] => Array ( ... ) [2] => Array ( ... ) [3] => Array ( ... ) ) ) 

Итак, некоторые идеи отладки:

  1. Не используйте @session_start .
  2. Установите error_reporting(E_ALL)
  3. Настройка отчетов об ошибках в php.ini
  4. Проверьте свои файлы cookie, чтобы узнать, отправлено ли cookie PHPSESSID вообще.

Используйте array_splice, как показано в следующем коде:

 $_SESSION['array1'] = array_splice($_SESSION['array1'],1,0); 

Как насчет сохранения вашей переменной сеанса снова:

 $_SESSION['array1'] = array($d1,$d3,$d4);