首先,需要启动一个会话并将数组序列化为 JSON
<?php
session_start(); // 开始会话
$array = [
"foo" => "bar",
"bar" => "foo",
];
$_SESSION['data'] = json_encode($array); // 将数组序列化为 JSON 并存储在会话中
?>
从 $_SESSION 变量中提取 JSON 字符串,然后将其解码为 PHP 数组,如果您想要限制会话的持续时间,可以使用 ini_set 函数设置 session.gc_maxlifetime 选项
<?php
session_start(); // 开始会话
ini_set('session.gc_maxlifetime', 1440); // 会话有效期为 20 分钟(以秒为单位)
$json = isset($_SESSION['data']) ? $_SESSION['data'] : null;
if ($json !== null) {
$array = json_decode($json, true); // 将 JSON 字符串解码为 PHP 数组
// 现在您可以使用 $array 进行查询或其他操作
$key = array_search('foo', $array); // 查找值为 "foo" 的键
if ($key !== false) {
echo "Value 'foo' is at key: {$key}";
} else {
echo "Value 'foo' not found in the array";
}
}
?>
使用 array_search() 函数来查找值为 "foo" 的键。如果这个键存在,我们就输出它;否则,我们输出一条说明值 "foo" 不存在于数组中的消息。
需要注意的是,以上查询只针对特定值和键进行了检查。您可以使用其他内置功能来执行更复杂的查询,例如 array_key_exists() 函数来检查某个键是否存在,array_filter() 函数来筛选满足特定条件的元素。