PHP – Как создать рекурсивную функцию?

Мой массив:

array(1) { ["farm"] => array(1) { ["animals"] => array(1) { [horses] => array(4) { ["fred"] => string(4) "fred" ["sam"] => string(4) "sam" ["alan"] => string(4) "alan" ["john"] => string(4) "john" } } } } 

Моя функция (созданная @FrayneKonok)

 $id = "2"; $search = "horses"; get_values($arr); function get_values($arr, $id) { global $search; foreach($arr as $key => $value) { if($key == $search) { if(is_array($value)) { echo(join("<a href='mypage.php?id=".$id."&dir=".$value."'><li>",array_keys($value))); echo("</li></a>"); } else { echo($value); } } else { get_values($value); } } } get_values($array,$id); - $id = "2"; $search = "horses"; get_values($arr); function get_values($arr, $id) { global $search; foreach($arr as $key => $value) { if($key == $search) { if(is_array($value)) { echo(join("<a href='mypage.php?id=".$id."&dir=".$value."'><li>",array_keys($value))); echo("</li></a>"); } else { echo($value); } } else { get_values($value); } } } get_values($array,$id); 

Результат:

 "fred" <a href="mypage.php?id=2&dir=Array"><li>sam</li></a> <a href="mypage.php?id=2&dir=Array"><li>alan</li></a> <a href="mypage.php?id=2&dir=Array"><li>john</li></a> 

Результат, который я ищу:

 <a href="mypage.php?id=2&dir=fred"><li>fred</li></a> <a href="mypage.php?id=2&dir=sam"><li>sam</li></a> <a href="mypage.php?id=2&dir=alan"><li>alan</li></a> <a href="mypage.php?id=2&dir=john"><li>john</li></a> 

Другой пример – когда я использую if($search = "farm") мой результат становится:

 "animals" 

Когда результат я ищу:

 <a href="mypage.php?id=2&dir=animals"><li>animals</li></a>