我在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'];
但请记住,数组可以是任意数量的深度。
答案 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;