fork(1) download
  1. <?php
  2.  
  3. $pages = [
  4. [ 'page_id' => '1' ],
  5. [
  6. 'page_id' => '2',
  7. 'children' => [[
  8. [
  9. 'page_id' => '10',
  10. 'children' => [[
  11. [ 'page_id' => '12' ],
  12. [ 'page_id' => '13' ]
  13. ]]
  14. ],
  15. [ 'page_id' => '11' ]
  16. ]]
  17. ],
  18. [ 'page_id' => '4' ],
  19. [ 'page_id' => '3' ]
  20. ];
  21.  
  22. function removeUselessArrays($array) {
  23. $newArray = [];
  24.  
  25. foreach ($array as $key => $value) {
  26. if (is_array($value)) {
  27. if (array_keys($value) === [ 0 ]) {
  28. $newArray[$key] = removeUselessArrays($value[0]);
  29. } else {
  30. $newArray[$key] = removeUselessArrays($value);
  31. }
  32. } else {
  33. $newArray[$key] = $value;
  34. }
  35. }
  36.  
  37. return $newArray;
  38. }
  39.  
  40. echo "Before:" . PHP_EOL;
  41. print_r($pages);
  42.  
  43. echo "After:" . PHP_EOL;
  44. print_r(removeUselessArrays($pages));
Success #stdin #stdout 0.01s 52488KB
stdin
Standard input is empty
stdout
Before:
Array
(
    [0] => Array
        (
            [page_id] => 1
        )

    [1] => Array
        (
            [page_id] => 2
            [children] => Array
                (
                    [0] => Array
                        (
                            [0] => Array
                                (
                                    [page_id] => 10
                                    [children] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [page_id] => 12
                                                        )

                                                    [1] => Array
                                                        (
                                                            [page_id] => 13
                                                        )

                                                )

                                        )

                                )

                            [1] => Array
                                (
                                    [page_id] => 11
                                )

                        )

                )

        )

    [2] => Array
        (
            [page_id] => 4
        )

    [3] => Array
        (
            [page_id] => 3
        )

)
After:
Array
(
    [0] => Array
        (
            [page_id] => 1
        )

    [1] => Array
        (
            [page_id] => 2
            [children] => Array
                (
                    [0] => Array
                        (
                            [page_id] => 10
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [page_id] => 12
                                        )

                                    [1] => Array
                                        (
                                            [page_id] => 13
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [page_id] => 11
                        )

                )

        )

    [2] => Array
        (
            [page_id] => 4
        )

    [3] => Array
        (
            [page_id] => 3
        )

)