<?php
array("id" => 1,"parent" => 0,"route" => "home","children" => array()), array("id" => 2,"parent" => 0,"route" => "news","children" => array()), array("id" => 3,"parent" => 0,"route" => "photography","children" => array( array("id" => 6,"parent" => 3,"route" => "photography/portraits","children" => array()), array("id" => 7,"parent" => 3,"route" => "photography/countries","children" => array()), array("id" => 8,"parent" => 3,"route" => "photography/landscapes","children" => array( array("id" => 9,"parent" => 8,"route" => "photography/landscapes/city","children" => array()), array("id" => 10,"parent" => 8,"route" => "photography/landscapes/wilderness","children" => array()) )
)
)
),
array("id" => 4,"parent" => 0,"route" => "about","children" => array()), array("id" => 5,"parent" => 0,"route" => "contact","children" => array()), );
function recurse($needle = -1, $haystack = NULL){
if (count($_tmp) == 0 && $haystack != NULL && count($haystack) > 0) { foreach($haystack as $key => $item) {
echo $needle ." === ". $item["id"] . "<br/>\n";
if((string)$item["id"] === (string)$needle){
echo "Found: " . $needle . "<br/>\n";
$_tmp = $item;
//break;
return $_tmp;
} elseif (!empty($item["children"])) { echo "calling ". $item["id"]. ".children <br/>\n";
$_tmp = recurse($needle, $item["children"]);
}
}
}
}
return $_tmp;
}
$test = recurse(9, $haystack);
?>
PD9waHAKJGhheXN0YWNrID0gYXJyYXkoCiAgICBhcnJheSgiaWQiID0+IDEsInBhcmVudCIgPT4gMCwicm91dGUiID0+ICJob21lIiwiY2hpbGRyZW4iID0+IGFycmF5KCkpLAogICAgYXJyYXkoImlkIiA9PiAyLCJwYXJlbnQiID0+IDAsInJvdXRlIiA9PiAibmV3cyIsImNoaWxkcmVuIiA9PiBhcnJheSgpKSwKICAgIGFycmF5KCJpZCIgPT4gMywicGFyZW50IiA9PiAwLCJyb3V0ZSIgPT4gInBob3RvZ3JhcGh5IiwiY2hpbGRyZW4iID0+IGFycmF5KAogICAgICAgICAgICAgICAgYXJyYXkoImlkIiA9PiA2LCJwYXJlbnQiID0+IDMsInJvdXRlIiA9PiAicGhvdG9ncmFwaHkvcG9ydHJhaXRzIiwiY2hpbGRyZW4iID0+IGFycmF5KCkpLAogICAgICAgICAgICAgICAgYXJyYXkoImlkIiA9PiA3LCJwYXJlbnQiID0+IDMsInJvdXRlIiA9PiAicGhvdG9ncmFwaHkvY291bnRyaWVzIiwiY2hpbGRyZW4iID0+IGFycmF5KCkpLAogICAgICAgICAgICAgICAgYXJyYXkoImlkIiA9PiA4LCJwYXJlbnQiID0+IDMsInJvdXRlIiA9PiAicGhvdG9ncmFwaHkvbGFuZHNjYXBlcyIsImNoaWxkcmVuIiA9PiBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgiaWQiID0+IDksInBhcmVudCIgPT4gOCwicm91dGUiID0+ICJwaG90b2dyYXBoeS9sYW5kc2NhcGVzL2NpdHkiLCJjaGlsZHJlbiIgPT4gYXJyYXkoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoImlkIiA9PiAxMCwicGFyZW50IiA9PiA4LCJyb3V0ZSIgPT4gInBob3RvZ3JhcGh5L2xhbmRzY2FwZXMvd2lsZGVybmVzcyIsImNoaWxkcmVuIiA9PiBhcnJheSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKQogICAgICAgICkKICAgICksCiAgICBhcnJheSgiaWQiID0+IDQsInBhcmVudCIgPT4gMCwicm91dGUiID0+ICJhYm91dCIsImNoaWxkcmVuIiA9PiBhcnJheSgpKSwKICAgIGFycmF5KCJpZCIgPT4gNSwicGFyZW50IiA9PiAwLCJyb3V0ZSIgPT4gImNvbnRhY3QiLCJjaGlsZHJlbiIgPT4gYXJyYXkoKSksCik7CgpmdW5jdGlvbiByZWN1cnNlKCRuZWVkbGUgPSAtMSwgJGhheXN0YWNrID0gTlVMTCl7CiAgICBzdGF0aWMgJF90bXAgPSBhcnJheSgpOwoKICAgIGlmIChjb3VudCgkX3RtcCkgPT0gMCAmJiAkaGF5c3RhY2sgIT0gTlVMTCAmJiBjb3VudCgkaGF5c3RhY2spID4gMCkgewogICAgICAgZm9yZWFjaCgkaGF5c3RhY2sgYXMgJGtleSA9PiAkaXRlbSkgewogICAgICAgICAgaWYgKGNvdW50KCRfdG1wKSA9PSAwKSB7CiAgICAgICAgICAgZWNobyAkbmVlZGxlIC4iID09PSAiLiAkaXRlbVsiaWQiXSAuICI8YnIvPlxuIjsKCiAgICAgICAgICAgaWYoKHN0cmluZykkaXRlbVsiaWQiXSA9PT0gKHN0cmluZykkbmVlZGxlKXsKICAgICAgICAgICAgICAgZWNobyAiRm91bmQ6ICIgLiAkbmVlZGxlIC4gIjxici8+XG4iOwogICAgICAgICAgICAgICAkX3RtcCA9ICRpdGVtOwogICAgICAgICAgICAgICAvL2JyZWFrOwogICAgICAgICAgICAgICByZXR1cm4gJF90bXA7CiAgICAgICAgICAgfSBlbHNlaWYgKCFlbXB0eSgkaXRlbVsiY2hpbGRyZW4iXSkpIHsKICAgICAgICAgICAgICAgZWNobyAiY2FsbGluZyAiLiAkaXRlbVsiaWQiXS4gIi5jaGlsZHJlbiA8YnIvPlxuIjsKICAgICAgICAgICAgICAgJF90bXAgPSByZWN1cnNlKCRuZWVkbGUsICRpdGVtWyJjaGlsZHJlbiJdKTsKICAgICAgICAgICB9CiAgICAgICAgICAgfQogICAgICAgfQogICAgfQogICAgcmV0dXJuICRfdG1wOwp9CgokdGVzdCA9IHJlY3Vyc2UoOSwgJGhheXN0YWNrKTsKcHJpbnRfcigkdGVzdCk7Cgo/Pg==