fork(1) download
  1. <?php
  2.  
  3. $data = [
  4. 'test' => [
  5. 'a' => [
  6. 'b' => 'something',
  7. 5 => [
  8. 'a' => [
  9. 1 => 'test1',
  10. 19 => 'test2',
  11. 6 => 'test3',
  12. ],
  13. 0 => 'test',
  14. ],
  15. ],
  16. 'b' => 1,
  17. 2 => [
  18. 3 => 'something',
  19. 5 => 'somethingelse',
  20. ],
  21. 4 => 'body'
  22. ],
  23. 'anothertest' => [
  24. 'b' => 1,
  25. 5 => [
  26. 'test' => 1,
  27. 2 => 'something',
  28. 3 => 'somethingelse',
  29. ],
  30. ],
  31. ];
  32.  
  33. function reindex($array)
  34. {
  35. $index = 0;
  36. $return = [];
  37.  
  38. foreach ($array as $key => $value) {
  39. if (is_string($key)) {
  40. $newKey = $key;
  41. } else {
  42. $newKey = $index;
  43. ++$index;
  44. }
  45.  
  46. $return[$newKey] = is_array($value) ? reindex($value) : $value;
  47. }
  48.  
  49. // Sort alphabetically, numeric first then alpha
  50. ksort($return, SORT_NATURAL);
  51.  
  52. return $return;
  53. }
  54.  
  55. $array = reindex($data);
  56.  
  57. print_r($array);
Success #stdin #stdout 0.01s 82880KB
stdin
Standard input is empty
stdout
Array
(
    [anothertest] => Array
        (
            [0] => Array
                (
                    [0] => something
                    [1] => somethingelse
                    [test] => 1
                )

            [b] => 1
        )

    [test] => Array
        (
            [0] => Array
                (
                    [0] => something
                    [1] => somethingelse
                )

            [1] => body
            [a] => Array
                (
                    [0] => Array
                        (
                            [0] => test
                            [a] => Array
                                (
                                    [0] => test1
                                    [1] => test2
                                    [2] => test3
                                )

                        )

                    [b] => something
                )

            [b] => 1
        )

)