Hi all,
I want to recursively search and replace elements in an array.
The array is tree based so looks like
Object
Children
Object type A
Object type B
Object
Children
Object type A
Object
etc.
I want to be able to replace certain items with other items, so for example, I want to replace all entries in the array (at whatever depth level) of type A with an array of type B. But here's the catch: The newly replaced objects may also have children of type A that need to be replaced.
So far I've got
foreach($nodes as &$node) {
// Replace node?
if($node['type'] == 'RefObject') {
$n = $this->site->get_node_where('id', $node['node_ref']);
// Replace node
$node = $this->site->get_node_where('object_id', $n['object_id']);
// Get children
$node['children'] = $this->site->get_descendants($node['lft'], $node['rgt']);
}
}
return $nodes;
Which will replace the first level of RefObjects, but will not search the subsequently added children.
I've been bashing my head against a wall with this one for hours. Please help!
Cheers, Gaz.