3v4l.org

run code in 300+ PHP versions simultaneously
<?php $modules = [ [ "id_modulo" => "114", "nome_modulo" => "1. Acessos" ], [ "id_modulo" => "118", "nome_modulo" => "4. Área de Vivência" ], [ "id_modulo" => "128", "nome_modulo" => "14. Supressão" ] ]; $items = [ [ "id_modulo" => "114", "id_pergunta" => "547", "pergunta" => "Example", "resposta" => "C" ], [ "id_modulo" => "114", "id_pergunta" => "548", "pergunta" => "Example", "resposta" => "C" ], [ "id_modulo" => "118", "id_pergunta" => "549", "pergunta" => "Example", "resposta" => "C" ], [ "id_modulo" => "114", "id_pergunta" => "550", "pergunta" => "Example", "resposta" => "C" ], ]; $result = []; foreach (array_merge($modules, $items) as $row) { if (isset($row['nome_modulo'])) { $result[$row['id_modulo']] = $row + ['items' => []]; } else { $result[$row['id_modulo']]['items'][] = $row; } } var_export(array_values($result));
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array ( 0 => array ( 'id_modulo' => '114', 'nome_modulo' => '1. Acessos', 'items' => array ( 0 => array ( 'id_modulo' => '114', 'id_pergunta' => '547', 'pergunta' => 'Example', 'resposta' => 'C', ), 1 => array ( 'id_modulo' => '114', 'id_pergunta' => '548', 'pergunta' => 'Example', 'resposta' => 'C', ), 2 => array ( 'id_modulo' => '114', 'id_pergunta' => '550', 'pergunta' => 'Example', 'resposta' => 'C', ), ), ), 1 => array ( 'id_modulo' => '118', 'nome_modulo' => '4. Área de Vivência', 'items' => array ( 0 => array ( 'id_modulo' => '118', 'id_pergunta' => '549', 'pergunta' => 'Example', 'resposta' => 'C', ), ), ), 2 => array ( 'id_modulo' => '128', 'nome_modulo' => '14. Supressão', 'items' => array ( ), ), )

preferences:
93.97 ms | 409 KiB | 5 Q