[英]How to convert array to a json object?
我正在嘗試將值推送到數組中,它就像
[{"Monday":"11:30"},{"Monday":"12:00"},{"Monday":"23:00"},{"Tuesday":"11:30"},{"Tuesday":"12:00"},{"Tuesday":"23:00"}]
但我希望它像 object
{
"Monday" : [ "11:30", "12:00", "23:00"]
"Tuesday" : ["11:30","12:00","23:00"]
}
這是我的代碼片段
$timings = DoctorTimings::where('doctor_id', '=', $input['doctor_id'])->get();
$doctor_timings = [];
foreach($timings as $timing) {
$day_id = $timing->day_id;
$time_slot_id = $timing->time_slot_id;
$day_id = Days::where('id', '=', $day_id)->first()->day;
$time_id = DB::table('time_slot')->where('id', '=', $time_slot_id)->select('time')->first()->time;
array_push($doctor_timings, array($day_id => $time_id));
}
$doctorTimings = json_encode($doctor_timings);
echo $doctorTimings;
您可以使用mapToGroups
來獲取請求的格式。 但我不知道你的表結構,所以我得到了這些;
[{"Monday":"11:30"},{"Monday":"12:00"},{"Monday":"23:00"},{"Tuesday":"11:30"},{"Tuesday":"12:00"},{"Tuesday":"23:00"}]
放入集合中(假設您的 eloquent 集合返回這樣)
$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"
]
}
編輯:(您在此處在線發布的相同數組 + 我用於解決方案的相同 function)
$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"]}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.