使用字符串(PHP)从多维数组中选择元素

时间:2013-11-21 20:22:31

标签: php arrays string multidimensional-array explode

我在PHP中有一个多维数组

$somearray = array(
    'item1' => array(
        'subitem1' => 'Some value',
        'subitem2' => 'Some other value',
        'subitem3'  => array(
            'subsubitem' => 'A sub value'
        )
    ),
    'item2' => 'a different value'
);

然后我有一个字符串 map ,表示我想要选择的值:

"item1/subitem3/subsubitem"

如何将数组的字符串 map 转换为:

$wanted_value = $somearray['item1']['subitem3']['subsubitem'];

但请记住,数组可以是任意数量的深度。

2 个答案:

答案 0 :(得分:3)

这应该有效:

$parts = explode("/", $map);

$currentData = $somearray;
for ($i = 0; $i < count($parts); $i++) {
    $currentData = $currentData[$parts[$i]];
}

$result = $currentData;

答案 1 :(得分:1)

另一种方式(还应该检查以确保密钥存在):

$path   = explode("/", "item1/subitem3/subsubitem");
$result = $somearray;

foreach($path as $k) {
    $result = $result[$k];
}
echo $result;