Как правильно получить рекурсию? у меня есть многомерный массив и я хочу получать данные не зависимо от уровня вложенности. пример мне нужно получить данные по id.public function getChildById($arr, $id) { if(is_array($arr)){ foreach ($arr as $key => $value) { if($value['_id'] == $id){ return $value; }else { if($this -> getChildById($value['childs'], $id) != null){ print_r(1); return $arr[$key]['childs'][0]; } } } } return false; } но я получаю максимум данные второго уровня. как это решить. спасибо.
Для того чтобы получить данные из многомерного массива на любом уровне вложенности, можно использовать рекурсивную функцию, которая будет проверять каждый элемент массива и его подмассивы. В вашем случае, чтобы вернуть данные по id независимо от уровня вложенности, можно модифицировать вашу функцию следующим образом:
Эта функция будет рекурсивно искать элемент с заданным id в каждом элементе массива и его подмассивах. Когда будет найден элемент с данным id, функция вернет его. Если элемент с таким id не был найден, функция вернет false.
Таким образом, можно обращаться к функции getChildById для получения данных по id на любом уровне вложенности массива.
Для того чтобы получить данные из многомерного массива на любом уровне вложенности, можно использовать рекурсивную функцию, которая будет проверять каждый элемент массива и его подмассивы. В вашем случае, чтобы вернуть данные по id независимо от уровня вложенности, можно модифицировать вашу функцию следующим образом:
public function getChildById($arr, $id) {foreach ($arr as $value) {
if($value['_id'] == $id){
return $value;
} else {
if(isset($value['childs'])) {
$result = $this->getChildById($value['childs'], $id);
if($result !== false){
return $result;
}
}
}
}
return false;
}
Эта функция будет рекурсивно искать элемент с заданным id в каждом элементе массива и его подмассивах. Когда будет найден элемент с данным id, функция вернет его. Если элемент с таким id не был найден, функция вернет false.
Таким образом, можно обращаться к функции getChildById для получения данных по id на любом уровне вложенности массива.