Ik vond deze code voor het groeperen van bovenliggende kindarrays geweldig. Ik heb in 4 diepten getest zonder enig probleem. Het is echter geen recursieve functie.
$tree = null;
foreach($results as $result)
{
$thisref = &$refs->{$result['id']};
foreach($result as $k => $v)
{
$thisref->{$k} = $v;
}
if ($result['parentId'] == 0) {
$tree->{$result['id']} = &$thisref;
} else {
$refs->{$result['parentId']}->children->{$result['id']} = &$thisref;
}
}
$tree; // contains the newly sorted tree.
Het kan zijn dat u een aantal wijzigingen moet aanbrengen om het volledig te laten werken met uw situatie. Maar eigenlijk doorloopt het alle resultaten en combineert ze door middel van referentie.
Houd er rekening mee dat de uitgang $tree
gegevenstype is een object
en niet een array
Veel succes
UPDATE
U kunt de array als zodanig maken
$query = "SELECT * FROM pB_test ORDER BY parentId ASC";
$dbresult = mysql_query($query) or die ('Database Error (' . mysql_errno() . ') ' . mysql_error());
$results = array();
while($row=mysql_fetch_assoc($dbresult))
{
$results[]=$row
}