Php 按键数组查找多维数组中的值
我正在编写一个脚本,让用户加载一个远程XML文件并选择一个元素。然后我需要能够在以后检索该元素的值。XML定期更新,我希望每次都显示更新值 到目前为止,我将XML转换为多维数组,向用户显示元素及其值,当用户选择元素时,我保存多维数组的键 例如,如果我们有以下数组:Php 按键数组查找多维数组中的值,php,multidimensional-array,Php,Multidimensional Array,我正在编写一个脚本,让用户加载一个远程XML文件并选择一个元素。然后我需要能够在以后检索该元素的值。XML定期更新,我希望每次都显示更新值 到目前为止,我将XML转换为多维数组,向用户显示元素及其值,当用户选择元素时,我保存多维数组的键 例如,如果我们有以下数组: Array ( [responsecode] => 0 [message] => [items] => Array ( [0] => Arr
Array
(
[responsecode] => 0
[message] =>
[items] => Array
(
[0] => Array
(
[title] => Example1
[content] => This is the first message
[date] => 00/00/00
)
[1] => Array
(
[title] => Example2
[content] => This is the second message
[date] => 00/00/00
)
)
)
如果用户选择第一个标题元素,我将按如下方式保存路径:
$path = "itmes>0>title";
然后分解字符串以获得单独的键:
$keys = explode(">", $path);
Array
(
[0] => items
[1] => 0
[2] => title
)
如果我想手动读取值,我会使用:
array['items']['0']['title']
但是,当我有一组密钥时,如何构建该查询?只需编写一个循环:
function extract_value(array $array, array $keys) {
foreach($keys as $key) {
if (!isset($array[$key])) return null;
$array = $array[$key];
}
return $array;
}
你可以用这个作为例子
$result = extract_value($data, $keys);
其思想是,您有一个变量“指向”数组中的一个元素,并通过使用每个键值进行分支来更新它。当没有更多的键时,指针将指向结果