从Array获取值作为数组键

How do I recursively get value from array where I need to explode a key? I know, it's not good the question, let me explain.

I got an array

[
  "abc" => "def", 
  "hij" => [
              "klm" => "nop", 
              "qrs" => [
                          "tuv" => "wxy"
                       ]
           ]
]

So, inside a function, I pass:

function xget($section) {
    return $this->yarray["hij"][$section];
}

But when I want to get tuv value with this function, I want to make section as array, example:

To get hij.klm value (nop), I would do xget('klm'), but to get hij.klm.qrs.tuv, I can't do xget(['qrs', 'tuv']), because PHP consider $section as key, and does not recursively explode it. There's any way to do it without using some ifs and $section[$i] ?

function xget($section) {
    return $this->yarray["hij"][$section];
}

that one is static function right?

you can do that also for this

function xget($section) {
    if(isset($this->yarray["hij"][$section])){
         return $this->yarray["hij"][$section];
    }elseif(isset($this->yarray["hij"]["klm"]["qrs"][$section])){
         return $this->yarray["hij"]["klm"]["qrs"][$section];
    }
}

as long as the key name between two of them are not the same.

You could use array_walk_recursive to find tuv's value regardless of the nested structure:

$tuv_val='';
function find_tuv($k,$v)
{
   global $tuv_val;
   if ($k=='tuv')
      $tuv_val=$v;
}
array_walk_recursive($this->yarray,"find_tuv");
echo "the value of 'tuv' is $tuv_val";

try my code

<?php

    $array = array(
            'aaa' => 'zxc',
            'bbb' => 'asd',
            'ccc' => array(
                    'ddd' => 'qwe',
                    'eee' => 'tyu',
                    'fff' => array(
                                'ggg' => 'uio',
                                'hhh' => 'hjk',
                                'iii' => 'bnm',
                            ),
                ),
        );

    $find = '';

    function xget($key){
        $GLOBALS['find'] = $key;
        $find = $key;
        array_walk_recursive($GLOBALS['array'],'walkingRecursive');
    }


    function walkingRecursive($value, $key)
    {
        if ($key==$GLOBALS['find']){
            echo $value;
        }
    }


    xget('ggg');
?>