PHP-Code:
$rows = array(
array(7,'Lebewesen',0,8,0,0),
array(10,'Säugetiere',1,4,1,0),
array(2,'Primaten',2,2,1,0),
array(8,'Halbaffen',3,0,1,0),
array(4,'Affen',3,0,0,1),
array(33,'Nagetiere',2,0,0,1),
array(52,'Menschen',1,2,0,1),
array(22,'Asiaten',2,0,1,0),
array(26,'Afrikaner',2,0,0,1)
);
$temp=array();
$new = true;
$level = -1;
foreach($rows as $k=>$a) {
if ($a[2] == 0 && $a[2]!=$level) {
$levelId = array(); // reset array
}
$id = $a[0];
$level = $a[2];
$levelId[$level]=$a[0];
echo 'Level '.$a[2].' ID '.$id.'</br>';
$array = array(
'id' => $id,
);
if ($level == 0) {
$temp[$id] = $array;
} elseif ($level == 1) {
$temp[$levelId[0]]['child'][$id] = $array;
} elseif ($level == 2) {
$temp[$levelId[0]]['child'][$id][$levelId[1]]['child'] = $array;
} elseif ($level == 3) {
$temp[$levelId[0]]['child'][$id][$levelId[1]]['child'][$levelId[2]]['child'] = $array;
}
}
echo '<h1>Rows</h1>';
echo '<pre>'.print_r($rows,true).'</pre>';
echo '<h1>Array</h1>';
echo '<pre>'.print_r($temp,true).'</pre>';