У меня есть следующая структура массива php:
$r = [
[
'id' => 'abc',
'children' => [
[
'id' => 'def',
'children' => []
],
[
'id' => 'ghi',
'children' => [
[
'id' => 'jkl',
'children' => []
],
[
'id' => 'mno',
'children' => []
]
]
]
]
]
]
и функция для поиска родителя, например:
function &getElementByUuid($element, $uuid){
foreach($element as $child){
if($child['id'] == $uuid){
return $child;
}
if(isset($child['children'])){
if($childFound = $this->getElementByUuid($child['children'], $uuid)){
return $childFound;
}
}
}
return false;
}
, вызывающая это по
getElementByUuid($r, 'ghi');
Поиск уже работает отлично, так как он возвращает родительский элемент, я хочу добавить дочерние элементы.
Но мне нужно получить найденный родительский элемент массива в качестве ссылки, чтобы я мог добавить к нему элементы массива.
Как:
$parent = getElementByUuid($r, 'ghi');
$parent['children'][] = [
'id' => 'xyz',
'children' => []
];
Но я не могу получить родительский элемент в качестве ссылки, хотя я пометил метод с помощью &, чтобы вернуть ссылку, а не значение.
Любая помощьна этом было бы здорово.
Заранее спасибо :))