I need to learn not asking questions when I'm tired. Can't believe it was that simple.

Thank you very much.

Actually, hmm.
That makes the key of the array item be the parent.

Also, something else goes wrong here:
CODE
<?php
$array = array(
'0' => array(
'name' => 'test',
'parent' => NULL
),
'1' => array(
'name' => 'foo',
'parent' => '0'
),
'2' => array(
'name' => 'bar',
'parent' => '0'
),
'3' => array(
'name' => 'foobar',
'parent' => NULL
),
'4' => array(
'name' => 'this',
'parent' => '3'
),
'5' => array(
'name' => 'that',
'parent' => '3'
),
'6' => array(
'name' => 'this',
'parent' => '5'
),
'7' => array(
'name' => 'that',
'parent' => '5'
)
);
$arranged = array();
foreach($array as $key => $value)
{
if(is_null($value['parent']))
{
$arranged[$value['parent']] = array();
}
$arranged[$value['parent']][$value['name']] = $value;
}
function arrange($array, $currentprefix)
{
foreach($array as $key => $thing)
{
if(is_array($thing))
{
echo $currentprefix . $key . "<br />";
arrange($thing, $currentprefix . "-");
}
else
{
echo $currentprefix . $thing . "<br />";
}
}
}
arrange($arranged, "-");
?>
Returning:
CODE
-
--foobar
---foobar
---
-0
--foo
---foo
---0
--bar
---bar
---0
-3
--this
---this
---3
--that
---that
---3
-5
--this
---this
---5
--that
---that
---5