Check if specific array key exists in multidimensional array - PHP

前端 未结 6 1334
慢半拍i
慢半拍i 2020-11-27 18:53

I have a multidimensional array e.g. (this can be many levels deep):

$array = Array ( 
    [21] => Array ( ) 
    [24] => Array ( 
        [22] => A         


        
6条回答
  •  萌比男神i
    2020-11-27 19:28

    function findKey($array, $keySearch)
    {
        // check if it's even an array
        if (!is_array($array)) return false;
    
        // key exists
        if (array_key_exists($keySearch, $array)) return true;
    
        // key isn't in this array, go deeper
        foreach($array as $key => $val)
        {
            // return true if it's found
            if (findKey($val, $keySearch)) return true;
        }
    
        return false;
    }
    
    // test
    $array = Array ( 
        21 => Array ( 24 => 'ok' ),
        24 => Array ( 
            22 => Array ( 29 => 'ok' ),
            25 => Array ( 
                26 => Array ( 32 => 'ok' ) 
            )
        )
    );
    
    $findKeys = Array(21, 22, 23, 24, 25, 26, 27, 28, 29, 30);
    foreach ($findKeys as $key)
    {
        echo (findKey($array, $key)) ? 'found ' : 'not found ';
        echo $key.'
    '; }

提交回复
热议问题