fork download
  1. <?php
  2. $array_base = array(
  3. 0=>array('id'=>1, 'nome'=>'Administrador'),
  4. 1=>array(
  5. 0=>array('id'=>17, 'nome'=>'Administrador > Revenda 1'),
  6. 1=>array(
  7. 0=>array('id'=>20, 'nome'=>'Administrador > Revenda 1 > Revenda Teste > 1'),
  8. 1=>array(
  9. 0=>array('id'=>25, 'nome'=>'Administrador > Revenda 1 > Revenda Teste > 1 > Revenda Teste 2 - 1'),
  10. ),
  11. 2=>array('id'=>20, 'nome'=>'Administrador > Revenda 1 > Revenda Teste > 2'),
  12. 3=>array('id'=>20, 'nome'=>'Administrador > Revenda 1 > Revenda Teste > 3'),
  13. ),
  14. ),
  15. );
  16.  
  17. $array_final = array();
  18.  
  19. foreach ($array_base as $resultado) {
  20. if(isset($resultado['id'])){
  21. $array_final[]= $resultado;
  22. }else{
  23. $array_final = subnivel($resultado, $array_final);
  24. }
  25. }
  26.  
  27. var_dump($array_final);exit;
  28.  
  29. function subnivel($array_subnivel, $array_final){
  30. foreach ($array_subnivel as $subnivel) {
  31. if(isset($subnivel['id'])){
  32. $array_final[]= $subnivel;
  33. }else{
  34. $array_final = subnivel($subnivel, $array_final);
  35. }
  36. }
  37. return $array_final;
  38. }
  39. ?>
Success #stdin #stdout 0.02s 23488KB
stdin
Standard input is empty
stdout
array(6) {
  [0]=>
  array(2) {
    ["id"]=>
    int(1)
    ["nome"]=>
    string(13) "Administrador"
  }
  [1]=>
  array(2) {
    ["id"]=>
    int(17)
    ["nome"]=>
    string(25) "Administrador > Revenda 1"
  }
  [2]=>
  array(2) {
    ["id"]=>
    int(20)
    ["nome"]=>
    string(45) "Administrador > Revenda 1 > Revenda Teste > 1"
  }
  [3]=>
  array(2) {
    ["id"]=>
    int(25)
    ["nome"]=>
    string(67) "Administrador > Revenda 1 > Revenda Teste > 1 > Revenda Teste 2 - 1"
  }
  [4]=>
  array(2) {
    ["id"]=>
    int(20)
    ["nome"]=>
    string(45) "Administrador > Revenda 1 > Revenda Teste > 2"
  }
  [5]=>
  array(2) {
    ["id"]=>
    int(20)
    ["nome"]=>
    string(45) "Administrador > Revenda 1 > Revenda Teste > 3"
  }
}