php – 通过一系列键在多维数组中深入获取值
发布时间:2020-05-25 09:02:27 所属栏目:PHP 来源:互联网
导读:如果是数组$array 和键序列$keys = array(‘key1′,’key2′,’key3’) 如果获得$array [$keys [1]] [$keys [2]] [$keys [3]],如果键的数量不确定,可能有4个键,或1个键等等? 我的代码目前是: switch(count($keys)) { case 1: if(array_isset($array[$k
|
如果是数组$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;
}
}
通过简单的循环:
//for PHP <=5.3 replace short [] to array()
$rgData = ['key1'=>['key2'=>['key3'=>'test','key4'=>'data'],'key5'=>'done']];
$rgKeys = ['key1','key2','key3'];
$rgResult = $rgData[$rgKeys[0]];
for($i=1; $i<count($rgKeys); $i++)
{
$rgResult=$rgResult[$rgKeys[$i]];
}
eval可能有一个选项,但我会说 – 永远不要使用eval – 如果你可以避免它. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
