Dynamically accessing multidimensional array value

前端 未结 4 1648
长发绾君心
长发绾君心 2021-01-13 21:50

I\'m trying to find (or create) a function. I have a multidimensional array:

$data_arr = [
    \"a\" => [
        \"aa\" => \"abfoo\",
        \"ab\"          


        
4条回答
  •  没有蜡笔的小新
    2021-01-13 22:28

    Wanted to post an even more elegant solution: array_reduce

        $data_arr = [
            "a" => [
                ...
                "ab" => [
                    ...
                    "abc" => "abcfoo"
                ],
                ...
            ],
            ...
        ];
    
        $result = array_reduce(["a", "ab", "abc"], function($a, $b) {
            return $a[$b];
        }, $data_arr);
    
        // returns "abcfoo"
    

    I've been using Javascript's Array.reduce() a lot lately in updating some legacy code to ES6:

    JS:
    const data_obj = {...};
    let result = ['a','ab','abc'].reduce((a, b) => a[b], data_obj);
    

提交回复
热议问题