Php 按键数组查找多维数组中的值

Php 按键数组查找多维数组中的值,php,multidimensional-array,Php,Multidimensional Array,我正在编写一个脚本,让用户加载一个远程XML文件并选择一个元素。然后我需要能够在以后检索该元素的值。XML定期更新,我希望每次都显示更新值 到目前为止,我将XML转换为多维数组,向用户显示元素及其值,当用户选择元素时,我保存多维数组的键 例如,如果我们有以下数组: Array ( [responsecode] => 0 [message] => [items] => Array ( [0] => Arr

我正在编写一个脚本,让用户加载一个远程XML文件并选择一个元素。然后我需要能够在以后检索该元素的值。XML定期更新,我希望每次都显示更新值

到目前为止,我将XML转换为多维数组,向用户显示元素及其值,当用户选择元素时,我保存多维数组的键

例如,如果我们有以下数组:

  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);
其思想是,您有一个变量“指向”数组中的一个元素,并通过使用每个键值进行分支来更新它。当没有更多的键时,指针将指向结果