PHP: <?php /* вывести массив вида Array ( [0] => Array ( [id] => 1 [name] => мистер джонсон [students] => Array ( [0] => Вика ) ) [1] => Array ( [id] => 2 [name] => мистер смит [students] => Array ( [0] => Katya [1] => Fedor [2] => Max ) ) [2] => Array ( [id] => 4 [name] => Vasya [students] => Array ( [0] => Regina ) ) ) */ $arNames = [ [ 'id' => '2', 'name' => 'Вика', 'prof' => '1', ], [ 'id' => '4', 'name' => 'Katya', 'prof' => '2', ], [ 'id' => '3', 'name' => 'Regina', 'prof' => '4', ], [ 'id' => '5', 'name' => 'Fedor', 'prof' => '2', ], [ 'id' => '8', 'name' => 'Max', 'prof' => '2', ] ]; $arProf = [ '0' => [ 'id' => '1', 'name' => 'мистер джонсон', ], '1' => [ 'id' => '2', 'name' => 'мистер смит', ], '2' => [ 'id' => '4', 'name' => 'Vasya', ] ]; Вот набросок, всё что смог: PHP: foreach ($arNames as $key => $value ): $value = [ [ 'id' => $arProf['id'], 'name' =>$arProf['name'], 'student' => $arStedents = [ ] ], ]; print_r($value); endforeach;
Вместо студентов профессоров? PHP: $result = []; foreach($arrNames as $name) { foreach($arrProf as $prof) { if($name['prof'] == $prof['id']) { $tmp = $name; $tmp['prof'][] = $prof['name']; $result[] = $tmp; } } } var_dump($result);
Только нужно же наоборот, собрать кто студент у учителя. Сделал поправку $tmp['prof'][] = $prof['name']; на $tmp[]['prof'] = $prof['name']; --- Добавлено --- Да и плюс собираются массивы правильно, по id, но собираются онипо отдельности. А надо чтоб у профессора было несколько студентов
Да и плюс собираются массивы правильно, по id, но собираются они PHP: $result = array(); foreach($arProf as $prof) { foreach($arNames as $name) { $tmp = $prof; if($name['prof'] == $prof['id']) { $tmp['student'][] = $name['name']; $result[] = $tmp; } } } развернул, но собрать не получается как нужно