gpt4 book ai didi

php - 通过数组进行动态搜索

转载 作者:可可西里 更新时间:2023-11-01 13:47:30 24 4
gpt4 key购买 nike

我遇到了一个难题,我正在尝试创建一个函数来“动态”搜索数组,在本例中是我的 session 数组,但它应该适用于任何数组。现在这不是我的问题,我的问题是动态地允许这样做...

这是我的

public static function get($search = 'First/Second/Third') {    
$explode = explode('/',$search);
$count = count($explode);
if ($count == 1)
if (isset($_SESSION[$explode[0]]))
return $_SESSION[$explode[0]];
elseif ($count == 2)
if (isset($_SESSION[$explode[0]][$explode[1]]))
return $_SESSION[$explode[0]][$explode[1]];
elseif ($count == 3)
if (isset($_SESSION[$explode[0]][$explode[1]][$explode[2]]))
return $_SESSION[$explode[0]][$explode[1]][$explode[2]];
}

假设我有一个数组:

 array('First' => array('Second' => array('Third' => 'TEST VALUE'));

现在我要打电话

$value = get('First/Second/Third');

然后获取“测试值”作为我的 $value 变量的值。

在这种情况下它可以工作,但它不是动态的,我希望它甚至能够处理 10 层深的阵列,而无需添加越来越多的线....

好吧,也许有人比我更聪明:)

谢谢!!

最佳答案

$array = array(
'First' => array(
'Second' => array(
'Third' => 'TEST VALUE'
)
)
);
echo get($array, 'First/Second/Third'); // TEST VALUE

使用的函数

function get($data, $part) {
foreach(explode("/", $part) as $key) {
$data = isset($data[$key]) ? $data[$key] : null;
}
return $data;
}

Live Demo

关于php - 通过数组进行动态搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16926039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com