Flytta ner '{' från slutet på raden till första synliga tecken på nästa rad så det går att läsa koden. Sen tycker jag att din parameter $growth borde heta $level i stället för det är ju vad det är, en typ av "nivå" på indenteringen, eller nästningsdjupet.
Sätter du måsvingarna under varandra som jag visar i mitt exempel nedan så ser du en textuell symmetri som gör det många gånger lättare att följa flödet i strukturen än om du sätter första måsvingen i slutet på raden och den avslutande måsvingen i början av sista raden i blocket.
PHP-kod:
function intendChildren($children, $level)
{
foreach($children as $row)
{
$intend = "";
for($i=0;$i<$level;$i++)
{
$intend .= " ";
}
echo '<option '.((isset($_SESSION["last_parent_category"]) && $_SESSION["last_parent_category"] == $row["id"]) ? 'selected' : '').' value="'.$row["id"].'">'.$intend.'|__'.$row["name"].'</option>';
intendChildren($row["children"], ($level+1));
}
}
foreach($ordered_categories as $row)
{
echo '<option '.((isset($_SESSION["last_parent_category"]) && $_SESSION["last_parent_category"] == $row["id"]) ? 'selected' : '').' value="'.$row["id"].'">|__'.$row["name"].'</option>';
intendChildren($row["children"], 1);
}