Ich glaube dir bleibt nichts andere übrig als von oben nach unten anstatt umgekehrt durch zu laufen. Bekannte Struktur vorausgesetzt:
funktion make_active_return_active ($array) {
wenn (hat Kinder) dann {
$dieses_aktiv = false;
für jedes Kind tue {
wenn (make_active_return_active(Kind)) dann {
$dieses_aktiv = true;
} //ende wenn
} //ende foreach
}//ende wenn
return $dieses_aktiv
}//ende function
Wenn das Übergebene Array keine Kinder mehr hat wird einfach der "active"-Wert zurück gegeben. Wenn es Kinder hat wird der active-Wert erstmal false gesetzt und dann falls irgendein Kind active ist wird er wieder true gesetzt.
Der so gewonnene Wert wird ebenfalls zurück gegeben.
--
sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(