我有一个像这样的多维数组。我必须以某种方式对相同用户的数据进行排序。
Array
(
[0] => Array
(
[user_email] => example@gmail.com
[available_date] => 2018/06/30
[available_time] => 06.00,06.30,07.00,07.30
)
[1] => Array
(
[user_email] => example@gmail.com
[available_date] => 2018/06/31
[available_time] => 06.30,07.00,07.30,08.00
)
[3] => Array
(
[user_email] => newuser@gmail.com
[available_date] => 2018/06/31
[available_time] => 08.00,08.30,09.00,09.30
)
[4] => Array
(
[user_email] => newuser@gmail.com
[available_date] => 2018/06/30
[available_time] => 08.30,09.00,09.30,10.00
)
)
)
我希望最终的数组是这样的,其中available_date和可用时间将合并为具有同一用户的键名的数组。也许这很容易,但我被困住了。任何帮助都将不胜感激。
Array
(
[0] => Array
(
[user_email] => example@gmail.com
[date_time] => Array
(
[0]=>Array
(
[date] => 2018/06/30
[time] => 06.00,06.30,07.00,07.30,
)
[1]=>Array
(
[date] => 2018/06/31
[time] => 06.30,07.00,07.30,08.00,
)
)
)
[1] => Array
(
[user_email] => newuser@gmail.com
[date_time] => Array
(
[0]=>Array
(
[date] => 2018/06/31,
[time] => 08.00,08.30,09.00,09.30,
)
[1]=>Array
(
[date] => 2018/06/30,
[time] => 08.30,09.00,09.30,10.00,
)
)
)
)
答案 0 :(得分:1)
你可以这样做:
$x =
[
"0" => [
"user_email" => "example@gmail.com",
"available_date" => "2018/06/30",
"available_time" => "06.00,06.30,07.00,07.30",
],
"1" => [
"user_email" => "example@gmail.com",
"available_date" => "2018/06/31",
"available_time" => "06.30,07.00,07.30,08.00,"
],
"3" => [
"user_email" => "newuser@gmail.com",
"available_date" => "2018/06/31",
"available_time" => "08.00,08.30,09.00,09.30",
],
"4" => [
"user_email" => "newuser@gmail.com",
"available_date" => "2018/06/30",
"available_time" => "08.30,09.00,09.30,10.00",
]
];
$result = [];
foreach ($x as $item) {
$temp['date'] = $item['available_date'];
$temp['time'] = $item['available_time'];
$result[$item['user_email']]['date_time'][] = $temp;
}
print_r($result);
结果如下:
Array ( [example@gmail.com] => Array ( [date_time] => Array ( [0] => Array ( [date] => 2018/06/30 [time] => 06.00,06.30,07.00,07.30 ) [1] => Array ( [date] => 2018/06/31 [time] => 06.30,07.00,07.30,08.00, ) ) ) [newuser@gmail.com] => Array ( [date_time] => Array ( [0] => Array ( [date] => 2018/06/31 [time] => 08.00,08.30,09.00,09.30 ) [1] => Array ( [date] => 2018/06/30 [time] => 08.30,09.00,09.30,10.00 ) ) ) )