配列の場合$array
およびキー シーケンス$keys = array('key1','key2','key3')
$array[$keys[1]][$keys[2]][$keys[3]]
キーの数が不明な場合は、4 つのキーまたは 1 つのキーなどを取得する方法
私のコードは現在:
switch(count($keys)) {
case 1:
if(array_isset($array[$keys[0]]), $array)
$value = $array[$keys[0]];
break;
case 2:
if(array_isset($array[$keys[0]][$keys[1]]), $array[$keys[0]])
$value = $array[$keys[0]][$keys[1]];
break;
case 3:
if(array_isset($array[$keys[0]][$keys[1]][$keys[2]]), $array[$keys[0]][$keys[1]])
$value = $array[$keys[0]][$keys[1]][$keys[2]];
break;
case 4:
if(array_isset($array[$keys[0]][$keys[1]][$keys[2]][$keys[3]]), $array[$keys[0]][$keys[1]][$keys[2]])
$value = $array[$keys[0]][$keys[1]][$keys[2]][$keys[3]];
break;
default:
break;
}
function array_isset($key, Array $array) {
if(isset($array[$key])) {
return true;
}
return array_key_exists($key, $array);
}
もっと良いアイデアはありますか?eval を使いたくない
更新されたので、Alma Do Mundo による最終的なコード
$result = $array[$keys[0]];
for($i=1;$i<count($keys);$i++) {
if(array_isset($keys[$i], $result))
$result = $result[$keys[$i]];
else {
$result = null;
break;
}
}