I have an array of hospital which doctors are visiting at different time of weekdays eg:
Array
(
[0] => stdClass Object
(
[id] => 40
[doctorid] => 58
[hospitalid] => 1
[weekday] => 2
[starttime] => 09:30
[stime] => PM
[endtime] => 11:00
[etime] => PM
[randomkey] =>
)
[1] => stdClass Object
(
[id] => 41
[doctorid] => 58
[hospitalid] => 1
[weekday] => 2
[starttime] => 02:01
[stime] => PM
[endtime] => 04:02
[etime] => PM
[randomkey] =>
)
[2] => stdClass Object
(
[id] => 39
[doctorid] => 58
[hospitalid] => 1
[weekday] => 3
[starttime] => 09:30
[stime] => AM
[endtime] => 11:00
[etime] => AM
[randomkey] =>
)
[3] => stdClass Object
(
[id] => 38
[doctorid] => 58
[hospitalid] => 1
[weekday] => 3
[starttime] => 06:30
[stime] => PM
[endtime] => 09:30
[etime] => PM
[randomkey] =>
)
[4] => stdClass Object
(
[id] => 7
[doctorid] => 58
[hospitalid] => 2
[weekday] => 2
[starttime] => 09:30
[stime] => AM
[endtime] => 05:00
[etime] => PM
[randomkey] => rKkEU6cTWWN4ZxCw
)
[5] => stdClass Object
(
[id] => 8
[doctorid] => 58
[hospitalid] => 3
[weekday] => 2
[starttime] => 09:30
[stime] => AM
[endtime] => 05:00
[etime] => PM
[randomkey] => rKkEU6cTWWN4ZxCw
)
[6] => stdClass Object
(
[id] => 9
[doctorid] => 58
[hospitalid] => 23
[weekday] => 2
[starttime] => 09:30
[stime] => AM
[endtime] => 06:00
[etime] => PM
[randomkey] => rKkEU6cTWWN4ZxCw
)
)
I want the array in the following JSON tree format first order by hospital, days then time Eg:
{
"Hospital": [
{
"doctorid": "58",
"hospitalid": "1",
"day": [
{
"weekday": 2,
"time": [
{
"starttime": "9:30",
"stime": "AM",
"endtime": "11:00",
"etime": "PM"
},
{
"starttime": "2:01",
"stime": "PM",
"endtime": "04:02",
"etime": "PM"
}
]
},
{
"weekday": 3,
"time": [
{
"starttime": "9:30",
"stime": "AM",
"endtime": "11:00",
"etime": "PM"
},
{
"starttime": "6:30",
"stime": "PM",
"endtime": "09:30",
"etime": "PM"
}
]
}
]
},
{
"doctorid": "58",
"hospitalid": "2",
"day": [
{
"weekday": 2,
"time": [
{
"starttime": "9:30",
"stime": "AM",
"endtime": "05:00",
"etime": "PM"
}
]
}
]
},
{
"doctorid": "58",
"hospitalid": "3",
"day": [
{
"weekday": 2,
"time": [
{
"starttime": "9:30",
"stime": "AM",
"endtime": "05:00",
"etime": "PM"
}
]
}
]
},
{
"doctorid": "58",
"hospitalid": "23",
"day": [
{
"weekday": 3,
"time": [
{
"starttime": "9:30",
"stime": "AM",
"endtime": "06:00",
"etime": "PM"
}
]
}
]
}
]
}
I have tried to breakdown using foreach loop but can't solve it after hospital level. A generic functions will be helpful.