<?php
echo '<pre>' ;
$id = 1035 ; // Searching ID
$a = [
'id' => 291 ,
'children' => [
[
'id' => 1034 ,
'children' => [
[
'id' => 111 ,
'name' => 'ABC' ,
'figure' => '6 digits' ,
'children' => [ ]
] ,
[
'id' => 1035 ,
'lft' => 'LEFT' ,
'children' => [
[
'id' => 1036 ,
'children' => [
[
'id' => 222 ,
'someKey' => 'some value' ,
'children' => [ ]
]
]
] ,
[
'id' => 333 ,
'someKey' => 'some value' ,
'children' => [ ]
]
] ,
]
] ,
] ,
[
'id' => 1024 ,
'title' => 'ABC' ,
'children' => [
] ,
]
]
] ;
function findObject( $id , $obj ) {
global $myObj ;
// This is an object.
echo "Checking {$obj [" id"]}<br />" ;
// Check the id to what we need.
if ( $obj [ "id" ] == $id ) {
// Yay! We found it. Return the object.
echo "<strong>Yay we found {$obj [" id"]}</strong><br />" ;
$myObj = $obj ;
echo "<strong>Need to find a way to break out!</strong><br />" ;
}
else {
echo "Checking children of {$obj [" id"]}<br />" ;
// See if it has any children
if ( isset ( $obj [ "children" ] ) && count ( $obj [ "children" ] ) > 0 ) { echo "There are children for {$obj [" id"]}<br />" ;
foreach ( $obj [ "children" ] as $child ) {
findObject( $id , $child ) ;
}
}
}
}
}
findObject( $id , $a ) ;
echo "<br /><strong>Found it!</strong><br />" ;
} else
echo "Sorry, can't find the ID!" ;
echo '</pre>' ;
PD9waHAKZWNobyAnPHByZT4nOwokaWQgPSAxMDM1OyAvLyBTZWFyY2hpbmcgSUQKJG15T2JqID0gYXJyYXkoKTsKCiRhID0gWwoJJ2lkJz0+IDI5MSwgICAgCgknY2hpbGRyZW4nID0+IFsKCQlbCgkJCSdpZCcgICAgICAgID0+IDEwMzQsCgkJCSdjaGlsZHJlbicgID0+IFsKCQkJCVsKCQkJCQknaWQnICAgICAgPT4gMTExLAoJCQkJCSduYW1lJyAgICA9PiAnQUJDJywKCQkJCQknZmlndXJlJyAgPT4gJzYgZGlnaXRzJywgIAoJCQkJCSdjaGlsZHJlbic9PiBbXSAgCgkJCQldLAoJCQkJWwoJCQkJCSdpZCcgICAgICAgID0+IDEwMzUsCgkJCQkJJ2xmdCcgICAgICAgPT4gJ0xFRlQnLAoJCQkJCSdjaGlsZHJlbicgID0+IFsKCQkJCQkJWwoJCQkJCQkJJ2lkJyAgICAgICAgPT4gMTAzNiwKCQkJCQkJCSdjaGlsZHJlbicgID0+IFsKCQkJCQkJCQlbCgkJCQkJCQkJCSdpZCcgICAgICA9PiAyMjIsCgkJCQkJCQkJCSdzb21lS2V5JyA9PiAnc29tZSB2YWx1ZScsCgkJCQkJCQkJCSdjaGlsZHJlbic9PiBbXSAgCgkJCQkJCQkJXQoJCQkJCQkJXQoJCQkJCQldLAoJCQkJCQlbCgkJCQkJCQknaWQnICAgICAgPT4gMzMzLAoJCQkJCQkJJ3NvbWVLZXknID0+ICdzb21lIHZhbHVlJywKCQkJCQkJCSdjaGlsZHJlbic9PiBbXSAgCgkJCQkJCV0KCQkJCQldLAoJCQkJXQoJCQldLAoJCV0sCgkJWwoJCQknaWQnICAgICAgICA9PiAxMDI0LAoJCQkndGl0bGUnICAgICA9PiAnQUJDJywgICAgCgkJCSdjaGlsZHJlbicgID0+IFsKCQkJCQoJCQldLAoJCV0KCV0KXTsKCmZ1bmN0aW9uIGZpbmRPYmplY3QoJGlkLCAkb2JqKSB7CglnbG9iYWwgJG15T2JqOwoJLy8gVGhpcyBpcyBhbiBvYmplY3QuCglpZiAoaXNzZXQoJG9ialsiaWQiXSkpIHsKCQllY2hvICJDaGVja2luZyB7JG9ialsiaWQiXX08YnIgLz4iOwoJCS8vIENoZWNrIHRoZSBpZCB0byB3aGF0IHdlIG5lZWQuCgkJaWYgKCRvYmpbImlkIl0gPT0gJGlkKSB7CgkJCS8vIFlheSEgV2UgZm91bmQgaXQuIFJldHVybiB0aGUgb2JqZWN0LgoJCQllY2hvICI8c3Ryb25nPllheSB3ZSBmb3VuZCB7JG9ialsiaWQiXX08L3N0cm9uZz48YnIgLz4iOwoJCQkkbXlPYmogPSAkb2JqOwoJCQllY2hvICI8c3Ryb25nPk5lZWQgdG8gZmluZCBhIHdheSB0byBicmVhayBvdXQhPC9zdHJvbmc+PGJyIC8+IjsKCQl9CgkJZWxzZSB7CgkJCWVjaG8gIkNoZWNraW5nIGNoaWxkcmVuIG9mIHskb2JqWyJpZCJdfTxiciAvPiI7CgkJCS8vIFNlZSBpZiBpdCBoYXMgYW55IGNoaWxkcmVuCgkJCWlmIChpc3NldCgkb2JqWyJjaGlsZHJlbiJdKSAmJiBjb3VudCgkb2JqWyJjaGlsZHJlbiJdKSA+IDApIHsKCQkJCWVjaG8gIlRoZXJlIGFyZSBjaGlsZHJlbiBmb3IgeyRvYmpbImlkIl19PGJyIC8+IjsKCQkJCWZvcmVhY2ggKCRvYmpbImNoaWxkcmVuIl0gYXMgJGNoaWxkKSB7CgkJCQkJZmluZE9iamVjdCgkaWQsICRjaGlsZCk7CgkJCQl9CQoJCQl9CgkJfQoJfQp9CgpmaW5kT2JqZWN0KCRpZCwgJGEpOwppZiAoaXNzZXQoJG15T2JqKSAmJiAhZW1wdHkoJG15T2JqKSkgewoJZWNobyAiPGJyIC8+PHN0cm9uZz5Gb3VuZCBpdCE8L3N0cm9uZz48YnIgLz4iOwoJcHJpbnRfcigkbXlPYmopOwp9IGVsc2UKCWVjaG8gIlNvcnJ5LCBjYW4ndCBmaW5kIHRoZSBJRCEiOwoKZWNobyAnPC9wcmU+Jzs=