Получить значение массива по строковому пути

#php #arrays

Вопрос:

Итак, у меня есть массив и строковый путь, как это:

 string(48) "[0][children][0][children][0][children][0]["id"]"
 

Я хочу получить значение по этому пути… Что-то вроде этого:

 $array[0][children][0][children][0][children][0]["id"]
 

Как мне это получить?

На самом деле, мне нужно больше… Мне нужна вся ветвь этого массива… Итак, если у $array[0][детей] есть еще что-то, например, $array[0][имя], мне это тоже нужно (например, братья и сестры). После этого я получу другой путь, и мне нужно будет объединить эти два массива вместе.

 function recursive_array_search($needle, $haystack, $currentKey = '') {
    foreach($haystack as $key=>$value) {
        if (is_array($value)) {
            $nextKey = recursive_array_search($needle,$value, $currentKey . '[' . $key . ']');
            if ($nextKey) {
                return $nextKey;
            }
        }
        else if($value==$needle) {
            return is_numeric($key) ? $currentKey . '[' .$key . ']' : $currentKey . '["' .$key . '"]';
        }
    }
    return false;
}
 

Комментарии:

1. Можете ли вы var_экспортировать свой образец входного массива? Кроме того, откуда у тебя эта веревочка? Представление в стиле json кажется мне лучшим подходом