是否可以使用键的特殊日期格式对数组排序?
我正在从MySql数据库中提取一个记录列表,并对数据进行转换
$sql = ' SELECT people.*
DATE_FORMAT(people.started_at, ' . $dateformat . ') AS start_date,
//etc.
$dateformat = "'%W, %b %d %y'";
一旦我恢复了记录,我会根据开始日期对它们进行组织和分组,具有以下功能:
private function groupDataByKey ( $data, $key ) {
$groups = [];
foreach ($data as $item) {
$date = $item[ $key ];
if (!isset( $groups[ $date ] )) {
$groups[ $date ] = [];
}
array_push( $groups[ $date ], $item );
}
return $groups;
}
按开始日期分组数组:
$groups = $this->groupDataByKey( $people, 'start_date' );
这给了我这个格式:
["Sunday, Aug 05 18"]=>{//array data},
["Sunday, Jul 08 18"]=>{//array data},
["Friday, Aug 04 18"]=>{//array data},
["Monday, Jul 16 18"]=>{//array data}
//etc
太好了,但是日期不在顺序上。
我之所以更详细地讨论
我得到的数据是,这样你就可以看到是否有人在路上做我想做的事。
有没有办法根据日期键对数组进行排序?
我试过了
ksort($groups)
,但这是按星期几的字母顺序排列的。