src/Utilities/Arrays.php
public static function getValueByKeysPath(array $array, array $keys)
    {
        /*
         * No elements?
         * Nothing to do
         */
        if (empty($array)) {
            return null;
        }

        $value = null;

        if (self::issetRecursive($array, $keys)) {
            foreach ($keys as $key) {
                $value = $array[$key];
                array_shift($keys);

                if (is_array($value) && !empty($keys)) {
                    $value = self::getValueByKeysPath($value, $keys);
                }

                break;
            }
        }

        return $value;
    }
public static function getValueByKeysPath(array $array, array $keys)
    {
        /*
         * No elements?
         * Nothing to do
         */
        if (empty($array)) {
            return null;
        }

        $value = null;

        if (self::issetRecursive($array, $keys)) {
            foreach ($keys as $key) {
                $value = $array[$key];
                array_shift($keys);

                if (is_array($value) && !empty($keys)) {
                    $value = self::getValueByKeysPath($value, $keys);
                }

                break;
            }
        }

        return $value;
    }
public static function getValueByKeysPath ( array $ array , array $ keys ) { /*
         * No elements?
         * Nothing to do
         */ if ( empty ( $ array ) ) { return null ; } $ value = null ; if ( self :: issetRecursive ( $ array , $ keys ) ) { foreach ( $ keys as $ key ) { $ value = $ array [ $ key ] ; array_shift ( $ keys ) ; if ( is_array ( $ value ) && ! empty ( $ keys ) ) { $ value = self :: getValueByKeysPath ( $ value , $ keys ) ; } break ; } } return $ value ; }
Returns value of given array set under given path of keys, of course if the value exists.
The keys should be delivered in the same order as used by source array.

@param array $array The array which should contains a value
@param array $keys  Keys, path of keys, to find in given array
@return mixed

Examples:
a) $array
[
'some key' => [
'another some key' => [
'yet another key' => 123,
],
'some different key' => 456,
]
]

b) $keys
[
'some key',
'another some key',
'yet another key',
]

Based on the above examples will return:
123
Returns value of given array set under given path of keys of course if the value exists . The keys should be delivered in the same order as used by source array .