Wenn Deine level1 Childs nun auch noch Elemente haben, dann musst mal weiter schauen, dazu müssten dann noch mehr Ausnahmen rein ...
PHP-Code:
<?php
$structure = Array(
52 => Array(
'id' => 52,
'name' => 'Tier',
'level' => 0,
'children' => Array(
22 => Array(
'id' => 22,
'name' => 'Katze',
'level' => 1,
'children' => Array(
)
),
26 => Array(
'id' => 26,
'name' => 'Maus',
'level' => 1,
'children' => Array(
)
)
)
)
);
function rekursiv( $array )
{
foreach( $array as $key => $value )
{
if( is_array($value) )
{
foreach( $value as $subkey => $subvalue )
{
if($subkey != 'children' && $value['level'] == 0 )
{
$temp[$subkey] = $subvalue;
}
else if(!empty( $value['children'] ))
{
$temp['children'] = rekursiv( $value['children'] );
}
else
{
unset($value['children']);
$temp[$key] = $value;
}
}
}
else $temp[$key] = $value;
}
return $temp;
}
$ausgabe = rekursiv( $structure );
echo '<pre>'; print_r($ausgabe); echo '</pre><hr/>';