Сбросить конкретный элемент сеанса на основе значения внутри массива - PullRequest
0 голосов
/ 10 октября 2018

Проблема:

У меня есть переменная сеанса, которая состоит из нескольких массивов, и каждый массив имеет набор значений.Я хочу сбросить определенный массив, который соответствует значению определенной переменной внутри массива сеанса.

Конструкция сеанса:

enter image description here

Код PHP:

$key = array_search($answers['evaluationnumber'], $_SESSION['stimuli']);

if ($key !== false) {
  unset($_SESSION['stimuli'][$key]);
  $_SESSION['stimuli'] = array_values($_SESSION['stimuli']);
}

Я дважды проверил и получаю значение 3841 из переменной $answers['evaluationnumber'].

Вопрос:

Как начать копаться в списке массивов, чтобы сбросить этот конкретный ключ?

Желаемый вывод:

Чтобы иметь возможность удалить массив внутри массива сеанса с именем stimuli на основе значения, указанного в переменной $answers['evaluationnumber'].

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Если вы хотите проверить только определенное вхождение в сеансе против $answers['evaluationnumber'] и, как вы говорите, в массиве $_SESSION['stimuli'] будет только одно вхождение подмассива, это может показаться самым простым способом.

if ( $_SESSION['stimuli'][0]['evaluationsnumber'] == $answers['evaluationnumber'] ) {
    unset($_SESSION['stimuli'][0]);
}
0 голосов
/ 10 октября 2018

Вы должны взглянуть на функцию array_filter для php.

. Она займет массив и функцию фильтра.Эта функция фильтра будет передана каждому элементу вашего исходного массива.Там проверьте ваш желаемый ключ.

Если вы вернете true в эту функцию, в окончательный массив будет включен элемент, если false, он будет исключен.В документах есть простой пример .

...