vabbè:
Codice PHP:
$array = array(); //Il tuo array
$elemento = null;
$id = 13;
foreach($array as $voce)
{
if($elemento = iterateOver($voce, $id))
break;
}
getParents($elemento, $id);
//Itera sull'array passato ed estra la voce con id = $idToSearch
function iterateOver($voce, $idToSearch)
{
if($voce['id'] == $idToSearch)
return $voce;
if(count($voce['figlio']) == 0)
return null;
foreach($voce['figlio'] as $child)
{
$voce = iterateOver($child, $idToSearch);
if($voce)
return $voce;
}
}
//Ottiene ricorsivamente tutti gli elementi padri e li stampa in una riga
function getParents($elem, $idToSearch)
{
global $array;
if($elem['padre'] != 0){
foreach($array as $voce)
if($e = iterateOver($voce, $elem['padre']))
break;
getParents($e, $idToSearch);
}
echo $elem['title'].($elem['id'] == $idToSearch ? "" : " > ");
}