How can I sort an array with all children after their respective parents? I guess I’m trying to store a tree inside a one-dimensional array. I have tried to figure this out using usort, but I don’t think it is the right tool for the job.
Example input array:
array (0 => array ( 'id' => '1', 'parent' => '0', ),
1 => array ( 'id' => '2', 'parent' => '1', ),
2 => array ( 'id' => '3', 'parent' => '0', ),
3 => array ( 'id' => '5', 'parent' => '0', ),
4 => array ( 'id' => '17', 'parent' => '3', ),
5 => array ( 'id' => '31', 'parent' => '2', ),
6 => array ( 'id' => '32', 'parent' => '2', ))
Example output:

Start by building an actual tree, then flatten that tree: