我有一个像这样的多维数组:
Array
(
[0] => Array
(
[ID] => 1
[date_start] => 2016-07-30
[customerID] => 15
[job_type] => service
)
[1] => Array
(
[ID] => 2
[date_start] => 2016-08-10
[customerID] => 12
[job_type] => service
)
[2] => Array
(
[ID] => 3
[date_start] => 2016-08-20
[customerID] => 15
[job_type] => service
)
etc
我想对数据进行排序,以便显示在" date_start"订购,但保持customerID在一起。
所以,在上面的代码中,如果我按date_start排序,它将按以下顺序排列:
ID - 1,2,3。
但是,我想将客户ID保持在一起,但仍按date_start排序。因此,我希望订单是:
ID - 1,3,2
所以,从本质上讲,我需要它来对客户进行分组,找到该客户的最早日期,并按照这个最早的日期排序。
这可能吗?
由于
答案 0 :(得分:2)
使用array_multisort
:
function orderMultiArray(array $data)
{
$sort = array();
foreach ($data as $key => $value) {
$sort['date_start'][$key] = $value['date_start'];
$sort['customerID'][$key] = $value['customerID'];
}
array_multisort($sort['date_start'], SORT_ASC, $sort['customerID'], SORT_ASC, $data);
return $data;
}