fork(1) download
  1. <?php
  2.  
  3. function remove_duplicates(&$array){
  4. foreach($array as $key => &$val){
  5.  
  6. if(is_array($val)){
  7. if(count($val) == 1 && array_keys($val)[0] == $key){
  8. $val = $val[$key];
  9. }
  10.  
  11. remove_duplicates($val);
  12.  
  13. }
  14. }
  15. }
  16.  
  17. $names = [
  18. 8 => [
  19. 7 => "one name",
  20. 27 => [
  21. 27 => [
  22. 31 => "other name"
  23. ]
  24. ],
  25. 10 => [
  26. 10 => [
  27. 24 => [
  28. 24 => [
  29. 30 => "some name"
  30. ]
  31. ]
  32. ]
  33. ]
  34. ]
  35. ];
  36.  
  37.  
  38. print_r($names);
  39.  
  40. remove_duplicates($names);
  41.  
  42. print_r($names);
  43.  
  44. ?>
Success #stdin #stdout 0.03s 52432KB
stdin
Standard input is empty
stdout
Array
(
    [8] => Array
        (
            [7] => one name
            [27] => Array
                (
                    [27] => Array
                        (
                            [31] => other name
                        )

                )

            [10] => Array
                (
                    [10] => Array
                        (
                            [24] => Array
                                (
                                    [24] => Array
                                        (
                                            [30] => some name
                                        )

                                )

                        )

                )

        )

)
Array
(
    [8] => Array
        (
            [7] => one name
            [27] => Array
                (
                    [31] => other name
                )

            [10] => Array
                (
                    [24] => Array
                        (
                            [30] => some name
                        )

                )

        )

)