Dynamically accessing multidimensional array value

前端 未结 4 1657
长发绾君心
长发绾君心 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:11

    Try this

    function flatCall($data_arr, $data_arr_call){
        $current = $data_arr;
        foreach($data_arr_call as $key){
            $current = $current[$key];
        }
    
        return $current;
    }
    

    OP's Explanation:

    The $current variable gets iteratively built up, like so:

    flatCall($data_arr, ['a','ab','abc']);
    
    1st iteration: $current = $data_arr['a'];
    2nd iteration: $current = $data_arr['a']['ab'];
    3rd iteration: $current = $data_arr['a']['ab']['abc'];
    

    You could also do if ( isset($current) ) ... in each iteration to provide an error-check.

提交回复
热议问题