大佬教程收集整理的这篇文章主要介绍了php – 通过一系列键在多维数组中深入获取值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
和键序列$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 – 如果你可以避免它.
以上是大佬教程为你收集整理的php – 通过一系列键在多维数组中深入获取值全部内容,希望文章能够帮你解决php – 通过一系列键在多维数组中深入获取值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。