根据数组内的值取消设置特定会话项
Unset a specific session item based on value inside an array
问题:
我有一个由多个数组组成的会话变量,每个数组都有一组值。我希望取消设置与会话数组中特定变量的值匹配的特定数组。
会话构建:
PHP代码:
$key = array_search($answers['evaluationnumber'], $_SESSION['stimuli']);
if ($key !== false) {
unset($_SESSION['stimuli'][$key]);
$_SESSION['stimuli'] = array_values($_SESSION['stimuli']);
}
我已经仔细检查并从变量 $answers['evaluationnumber']
中得到了值 3841
。
问题:
如何开始深入研究数组列表以取消设置该特定键?
期望输出:
能够根据变量 $answers['evaluationnumber']
中给定的值删除名为 stimuli
的会话数组中的数组。
您应该查看 php 的 array_filter
函数。
它将接受一个数组和一个过滤函数。
此过滤器函数将传递给原始数组的每个元素。在那里检查您想要的密钥。
如果您在该函数中 return true
最终数组将包含该元素,如果 false
它将被排除。文档中有一个simple example。
如果您只想根据 $answers['evaluationnumber']
检查会话中的特定事件,并且如您所说,子数组在 $_SESSION['stimuli']
中只会出现一次,这似乎是最简单的方式。
if ( $_SESSION['stimuli'][0]['evaluationsnumber'] == $answers['evaluationnumber'] ) {
unset($_SESSION['stimuli'][0]);
}
问题:
我有一个由多个数组组成的会话变量,每个数组都有一组值。我希望取消设置与会话数组中特定变量的值匹配的特定数组。
会话构建:
PHP代码:
$key = array_search($answers['evaluationnumber'], $_SESSION['stimuli']);
if ($key !== false) {
unset($_SESSION['stimuli'][$key]);
$_SESSION['stimuli'] = array_values($_SESSION['stimuli']);
}
我已经仔细检查并从变量 $answers['evaluationnumber']
中得到了值 3841
。
问题:
如何开始深入研究数组列表以取消设置该特定键?
期望输出:
能够根据变量 $answers['evaluationnumber']
中给定的值删除名为 stimuli
的会话数组中的数组。
您应该查看 php 的 array_filter
函数。
它将接受一个数组和一个过滤函数。 此过滤器函数将传递给原始数组的每个元素。在那里检查您想要的密钥。
如果您在该函数中 return true
最终数组将包含该元素,如果 false
它将被排除。文档中有一个simple example。
如果您只想根据 $answers['evaluationnumber']
检查会话中的特定事件,并且如您所说,子数组在 $_SESSION['stimuli']
中只会出现一次,这似乎是最简单的方式。
if ( $_SESSION['stimuli'][0]['evaluationsnumber'] == $answers['evaluationnumber'] ) {
unset($_SESSION['stimuli'][0]);
}