Php 按天格式化多维数组数据
嗨,我有几天的数据响应,按天排序,如Php 按天格式化多维数组数据,php,laravel-5,multidimensional-array,Php,Laravel 5,Multidimensional Array,嗨,我有几天的数据响应,按天排序,如 Array ( [0] => stdClass Object ( [start_time] => 13:00:00 [end_time] => 13:20:00 [date] => 2020-08-30 [day] => sun ) [1] => stdClass Object
Array
(
[0] => stdClass Object
(
[start_time] => 13:00:00
[end_time] => 13:20:00
[date] => 2020-08-30
[day] => sun
)
[1] => stdClass Object
(
[start_time] => 14:40:00
[end_time] => 15:00:00
[date] => 2020-08-30
[day] => sun
)
[2] => stdClass Object
(
[start_time] => 10:00:00
[end_time] => 10:20:00
[date] => 2020-08-30
[day] => mon
)
[3] => stdClass Object
(
[start_time] => 16:00:00
[end_time] => 16:20:00
[date] => 2020-08-30
[day] => mon
)
[4] => stdClass Object
(
[start_time] => 15:40:00
[end_time] => 16:00:00
[date] => 2020-08-30
[day] => tue
)
[5] => stdClass Object
(
[start_time] => 15:20:00
[end_time] => 15:40:00
[date] => 2020-08-30
[day] => tue
)
)
我想在白天重新格式化数组,就像
Array
(
[0] => stdClass Object
(
[sun] => stdClass Object
(
[start_time] => 13:00:00
[end_time] => 13:20:00
[date] => 2020-08-30
[day] => sun
)
[mon] => stdClass Object
(
[start_time] => 10:00:00
[end_time] => 10:20:00
[date] => 2020-08-30
[day] => mon
)
[tue] => stdClass Object
(
[start_time] => 15:40:00
[end_time] => 16:00:00
[date] => 2020-08-30
[day] => tue
)
)
[1] => stdClass Object
(
[sun] => stdClass Object
(
[start_time] => 14:40:00
[end_time] => 15:00:00
[date] => 2020-08-30
[day] => sun
)
[mon] => stdClass Object
(
[start_time] => 16:00:00
[end_time] => 16:20:00
[date] => 2020-08-30
[day] => mon
)
[tue] => stdClass Object
(
[start_time] => 15:20:00
[end_time] => 15:40:00
[date] => 2020-08-30
[day] => tue
)
)
)
为此,我的代码为
foreach ($data as $key => $value) {
foreach ($week_days as $key1 => $v) {
$i = 0;
$response[$key][$v]['start_time'] = $value->start_time;
$response[$key][$v]['end_time'] = $value->end_time;
$response[$key][$v]['date'] = $value->date;
$response[$key][$v]['day'] = $value->day;
$response[$key][$v]['have_appointment'] = $value->have_appointment;
$response[$key][$v]['patient_name'] = $value->patient_name;
$response[$key][$v]['complain'] = $value->complain;
$i++;
}
}
但它似乎覆盖了数据&我无法找到我犯错误的地方我不知道这种排序的逻辑原因,也不完全了解您的数据可能会有什么变化,但据我所知,您需要按天值对数据进行分组,然后转置结构,以确保最终输出中没有子数组两次具有相同的
day
属性
代码:()
我的输出在转置时丢失了冗余/临时分组键(day
),我假设您不需要重复的值
array (
0 =>
array (
0 =>
(object) array(
'start_time' => '13:00:00',
'end_time' => '13:20:00',
'date' => '2020-08-30',
'day' => 'sun',
),
1 =>
(object) array(
'start_time' => '10:00:00',
'end_time' => '10:20:00',
'date' => '2020-08-30',
'day' => 'mon',
),
2 =>
(object) array(
'start_time' => '15:40:00',
'end_time' => '16:00:00',
'date' => '2020-08-30',
'day' => 'tue',
),
),
1 =>
array (
0 =>
(object) array(
'start_time' => '14:40:00',
'end_time' => '15:00:00',
'date' => '2020-08-30',
'day' => 'sun',
),
1 =>
(object) array(
'start_time' => '16:00:00',
'end_time' => '16:20:00',
'date' => '2020-08-30',
'day' => 'mon',
),
2 =>
(object) array(
'start_time' => '15:20:00',
'end_time' => '15:40:00',
'date' => '2020-08-30',
'day' => 'tue',
),
),
)
从逻辑上讲,为什么同一个日期适用于不同的日子?
30-08-2020
只是一个星期天。这个问题感觉不清楚。这是现实的吗?请始终将您的iterable数据表示为var\u export()
或json字符串,以便志愿者可以立即使用您的示例数据。您的代码与您的数据不相似。
array (
0 =>
array (
0 =>
(object) array(
'start_time' => '13:00:00',
'end_time' => '13:20:00',
'date' => '2020-08-30',
'day' => 'sun',
),
1 =>
(object) array(
'start_time' => '10:00:00',
'end_time' => '10:20:00',
'date' => '2020-08-30',
'day' => 'mon',
),
2 =>
(object) array(
'start_time' => '15:40:00',
'end_time' => '16:00:00',
'date' => '2020-08-30',
'day' => 'tue',
),
),
1 =>
array (
0 =>
(object) array(
'start_time' => '14:40:00',
'end_time' => '15:00:00',
'date' => '2020-08-30',
'day' => 'sun',
),
1 =>
(object) array(
'start_time' => '16:00:00',
'end_time' => '16:20:00',
'date' => '2020-08-30',
'day' => 'mon',
),
2 =>
(object) array(
'start_time' => '15:20:00',
'end_time' => '15:40:00',
'date' => '2020-08-30',
'day' => 'tue',
),
),
)