fork download
  1. <?php
  2.  
  3. $array = [
  4. ['id' => 1, 'categoria' => 'Lanches', 'categoria_id' => null, 'status' => 0, 'ordem' => null],
  5. ['id' => 2, 'categoria' => 'Porções', 'categoria_id' => null, 'status' => 0, 'ordem' => null],
  6. ['id' => 4, 'categoria' => 'Sucos', 'categoria_id' => null, 'status' => 0, 'ordem' => null],
  7. ['id' => 5, 'categoria' => 'Lanches Tradicionais', 'categoria_id' => 1, 'status' => 0, 'ordem' => null],
  8. ['id' => 6, 'categoria' => 'Lanches Gourmet', 'categoria_id' => 1, 'status' => 0, 'ordem' => null],
  9. ['id' => 7, 'categoria' => 'Lanches Caseiros', 'categoria_id' => 1, 'status' => 0, 'ordem' => null],
  10. ];
  11.  
  12.  
  13.  
  14. $arrayCategoria = array_filter($array, function ($item) {
  15. return empty($item['categoria_id']);
  16. });
  17.  
  18.  
  19. for ($i = 0; $i < count($arrayCategoria); $i++) {
  20. $id = $arrayCategoria[$i]['id'];
  21. $arrayCategoria[$i]['cats'] = array_filter(
  22. $array,
  23. function ($item) use ($id) {
  24. return $item['categoria_id'] === $id;
  25. }
  26. );
  27. }
  28.  
  29. echo '<pre>';
  30. print_r($arrayCategoria);
  31. echo '</pre>';
Success #stdin #stdout 0.01s 24400KB
stdin
Standard input is empty
stdout
<pre>Array
(
    [0] => Array
        (
            [id] => 1
            [categoria] => Lanches
            [categoria_id] => 
            [status] => 0
            [ordem] => 
            [cats] => Array
                (
                    [3] => Array
                        (
                            [id] => 5
                            [categoria] => Lanches Tradicionais
                            [categoria_id] => 1
                            [status] => 0
                            [ordem] => 
                        )

                    [4] => Array
                        (
                            [id] => 6
                            [categoria] => Lanches Gourmet
                            [categoria_id] => 1
                            [status] => 0
                            [ordem] => 
                        )

                    [5] => Array
                        (
                            [id] => 7
                            [categoria] => Lanches Caseiros
                            [categoria_id] => 1
                            [status] => 0
                            [ordem] => 
                        )

                )

        )

    [1] => Array
        (
            [id] => 2
            [categoria] => Porções
            [categoria_id] => 
            [status] => 0
            [ordem] => 
            [cats] => Array
                (
                )

        )

    [2] => Array
        (
            [id] => 4
            [categoria] => Sucos
            [categoria_id] => 
            [status] => 0
            [ordem] => 
            [cats] => Array
                (
                )

        )

)
</pre>