fork(1) download
  1. <?php
  2.  
  3. $topics = array(
  4. array('name' => 'n1', 'timestamp' => 5000, 'children' => array()),
  5. array('name' => 'n2', 'timestamp' => 4000, 'children' => array(
  6. array('name' => 'n3', 'timestamp' => 6000, 'children' => array()),
  7. array('name' => 'n4', 'timestamp' => 2000, 'children' => array(
  8. array('name' => 'n5', 'timestamp' => 4000, 'children' => array()),
  9. array('name' => 'n6', 'timestamp' => 3000, 'children' => array())
  10. )),
  11. )),
  12. array('name' => 'n7', 'timestamp' => 1000, 'children' => array())
  13. );
  14.  
  15. function sortRecurse(&$array) {
  16. usort($array, function($a, $b) {
  17. return $a['timestamp'] - $b['timestamp'];
  18. });
  19. foreach ($array as &$subarray) {
  20. sortRecurse($subarray['children']);
  21. }
  22. }
  23. sortRecurse($topics);
  24. print_r($topics);
Success #stdin #stdout 0.01s 23500KB
stdin
Standard input is empty
stdout
Array
(
    [0] => Array
        (
            [name] => n7
            [timestamp] => 1000
            [children] => Array
                (
                )

        )

    [1] => Array
        (
            [name] => n2
            [timestamp] => 4000
            [children] => Array
                (
                    [0] => Array
                        (
                            [name] => n4
                            [timestamp] => 2000
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [name] => n6
                                            [timestamp] => 3000
                                            [children] => Array
                                                (
                                                )

                                        )

                                    [1] => Array
                                        (
                                            [name] => n5
                                            [timestamp] => 4000
                                            [children] => Array
                                                (
                                                )

                                        )

                                )

                        )

                    [1] => Array
                        (
                            [name] => n3
                            [timestamp] => 6000
                            [children] => Array
                                (
                                )

                        )

                )

        )

    [2] => Array
        (
            [name] => n1
            [timestamp] => 5000
            [children] => Array
                (
                )

        )

)