Вы можете использовать mapToGroups
для получения в запрошенном формате. Но я не знаю структуру вашей таблицы, поэтому я получил их;
[{"Monday":"11:30"},{"Monday":"12:00"},{"Monday":"23:00"},{"Tuesday":"11:30"},{"Tuesday":"12:00"},{"Tuesday":"23:00"}]
помещено в коллекцию (при условии, что ваша красноречивая коллекция вернется таким образом)
$timings = collect([
["Monday" => "11:30"],
["Monday" => "12:00"],
["Monday" => "23:00"],
["Tuesday" => "11:30"],
["Tuesday" => "12:00"],
["Tuesday" => "23:00"]
]);
return $timings->mapToGroups(function ($item) {
$day = array_key_first($item);
return [$day => $item[$day]];
});
, которая их печатает;
{
"Monday": [
"11:30",
"12:00",
"23:00"
],
"Tuesday": [
"11:30",
"12:00",
"23:00"
]
}
Изменить: (здесь используется тот же массив, который вы разместили в сети + та же функция, которую я использовал для решения)
$days = ["Monday", "Monday"];
$time = ["11:30", "12:30"];
$doctor_timings = [];
for ($i = 0; $i < sizeof($days); $i++) {
$day_id = $days[$i];
$time_id = $time[$i];
array_push($doctor_timings, [$day_id => $time_id]);
}
return collect($doctor_timings)->mapToGroups(function ($item) {
$day = array_key_first($item);
return [$day => $item[$day]];
});
, который печатает
{"Monday":["11:30","12:30"]}