recursive function : filtering large multidimensional array by key element to HTML list
You can choose a (key => value) pair recursively with this function:

function array_value_recursive($key, array $arr){
    $val = array();
    array_walk_recursive($arr, function($v, $k) use($key, &amp;$val){
        if($k == $key) array_push($val, $v);
    });
    return count($val) &gt; 1 ? $val : array_pop($val);
}


This function makes use of array_walk_recursive() to push into a placeholder array whatever value is pointed to by whichever key matches our needle key. 

Proof code:

$array = array(
    'id' =&gt; 0,
    'name' =&gt; array(
        'it' =&gt; 'Tutti',
        'ca' =&gt; 'Tots',
        'es' =&gt; 'Todos', 
        'de' =&gt; 'Alle' ,
        'fr' =&gt; 'Tous',
        'nl' =&gt; 'Alle',
        'en' =&gt; 'All'
    ),
    'languages' =&gt; array(
        "d" =&gt; 33
    ),
    'subTypes' =&gt; array(
        0 =&gt; array(
            'id' =&gt; 1,
            'name' =&gt; array(
                'it' =&gt; 'Tutti',
                'ca' =&gt; 'Tots',
                'es' =&gt; 'Todos', 
                'de' =&gt; 'Alle' ,
                'fr' =&gt; 'Tous',
                'nl' =&gt; 'Alle',
                'en' =&gt; 'All'
            )
        ),
        1 =&gt; array(
            'id' =&gt; 1,
            'name' =&gt; array(
                'it' =&gt; 'Tutti',
                'ca' =&gt; 'Tots',
                'es' =&gt; 'Todos', 
                'de' =&gt; 'Alle' ,
                'fr' =&gt; 'Tous',
                'nl' =&gt; 'Alle',
                'en' =&gt; 'All'
            )
        ),
        2 =&gt; array(
            'id' =&gt; 1,
            'name' =&gt; array(
                'it' =&gt; 'Tutti',
                'ca' =&gt; 'Tots',
                'es' =&gt; 'Todos', 
                'de' =&gt; 'Alle' ,
                'fr' =&gt; 'Tous',
                'nl' =&gt; 'Alle',
                'en' =&gt; 'All'
            )
        )
    )
);

print_r(array_value_recursive("de", $array));


The above test code, which seeks all "de" keys, will output: 

Array ( 
    [0] =&gt; Alle 
    [1] =&gt; Alle 
    [2] =&gt; Alle 
    [3] =&gt; Alle
)