2017-11-03 109 views
3

如果我访问这样的如何检查特定阵列关键是存在于多维数组

$var = $final_Length_Array[1][0]['id']; 

指数如何检查“标识”键索引是否在数组中或不存在。

我试过使用函数array_key_exists,但它似乎只适用于一维数组。

我想它像if(array_key_exists('id',$final_Length_Array)){,但它没有工作

我也尝试isset检查是否有结果,或没有,但它没有也行if(isset($final_Length_Array[1][0]['id'])){

任何帮助,我会欣赏它

+0

请给出一个示例数组,给你的问题。 – trincot

+0

阵列就像 '[ { “名”: “李四”, “年”: “1”, “课程”: “艺术” } ]' – Rami

+0

那么你不必' [1]'。 – trincot

回答

3

超级哈克解决方案:

function array_key_exists_recursive($array, $key) { 
    return strpos(json_encode($array), "\"" . $key . "\":") !== false; 
} 

更好的解决方案:

$array = ['a' => ['b' => 'c']]; 
function array_key_exists_recursive($key, $array) { 
    if (array_key_exists($key, $array)) { 
     return true; 
    } 
    foreach($array as $k => $value) { 
     if (is_array($value) && array_key_exists_recursive($key, $value)) { 
      return true; 
     } 
    } 
    return false;    
} 

var_dump(array_key_exists_recursive('b', $array)); 
+1

超级酷,它工作正常,现在我可以检索任何索引。 非常感谢 – Rami

相关问题