3

ネストされた配列 (配列を含む配列を含む配列 …) にアクセスしようとしています。

配列とキーのパスを指定して、最後の値を取得する必要があります。

foo と a…zi を取得する必要がある場合

foo[a][b][c]…[x][y][z]

これよりもエレガントな方法があるかどうか疑問に思っていますか?

function getValueRecursive(array $array, string ...$identifyer){
    $value = $array;
    
    foreach($identifyer as $key){
        if(!key_exists($key, $value))
            return NULL;
        
        $value = $value[$key];
    }
    
    return $value;
}

$foo = [
    'a' => [
        'b' => [
            'c' => "Hallo Welt!"
        ]
    ]
];

echo getValueRecursive($foo, 'a', 'b', 'c');                                    // Returns "Hallo Welt!"
4

3 に答える 3