我有这个数组
Array
(
[0] => Array
(
[meeting_archive_id] => 1
[corp_aggregate_id] => 1
[created_by] => 103
[created_to] => 2
[date] => 15-07-2016
[time] => 10:00 am
[entry_id] => 103
[user_type] => 1
[firstname] => Kenyon
[lastname] => Martena
[job_title] =>
[email] =>
[company_name] => Lorem Ipsum Sodales Incorporated
[phone] => 1-446-161-3194
[type] => meeting
)
[1] => Array
(
[meeting_archive_id] => 16
[corp_aggregate_id] => 2
[created_by] => 103
[created_to] => 6
[date] => 17-07-2016
[time] => 1:00 am
[entry_id] => 103
[user_type] => 1
[firstname] => Hedley
[lastname] => Aurelia
[job_title] =>
[email] =>
[company_name] => Sit Amet Ante Corp.
[phone] => 1-484-144-8520
[type] => meeting
)
[2] => Array
(
[user_type] => 2
[firstname] => Abbot
[lastname] => Odessa
[job_title] =>
[email] =>
[company_name] => Fermentum Vel Mauris Consulting
[phone] => 1-912-440-1465
[type] => event
[meeting_archive_id] => 69
[date] => 02-08-2016
[time] => 8.00
[corp_aggregate_id] =>
[inves_aggregate_id] =>
)
[3] => Array
(
[user_type] => 1
[firstname] => Kenyon
[lastname] => Martena
[job_title] =>
[email] =>
[company_name] => Lorem Ipsum Sodales Incorporated
[phone] => 1-446-161-3194
[type] => event
[meeting_archive_id] => 70
[date] => 15-07-2016
[time] => 8.00
[corp_aggregate_id] =>
[inves_aggregate_id] =>
)
)
我需要按日期对这个数组进行排序
您可以按如下方式尝试此代码段:
foreach ($originalArray as $key => $part){
$sort[$key] = strtotime($part['date']);
}
array_multisort($sort, SORT_DESC, $originalArray);
你可以尝试使用usort:
usort($array, function($a, $b) {
$d1 = strtotime($a['date']);
$d2 = strtotime($b['date']);
return $d1 - $d2;
});
$a
和 $b
是数组,它们是主数组$array
的一部分,然后比较它们的时间。
usort的原始定义是:
bool usort ( array &$array , callable $value_compare_func )
可调用函数为:
int callback ( mixed $a, mixed $b )
在 out 的情况下,可调用函数为:
function($a, $b) {
$d1 = strtotime($a['date']);
$d2 = strtotime($b['date']);
return $d1 - $d2;
}
usort 的工作原理是将数组作为第一个参数和第二个参数可调用函数。该可调用函数,除了获取数组的两个元素。在内部,它使用快速排序算法,可调用函数应返回整数值 0、1 或 -1。
如果两个日期(或任何应该比较的内容(相等,则该函数应返回 0。
如果第一个元素更大,它应该返回 1如果第二个元素更大,则应返回 -1
输入数组(usort 函数中的第一个参数(是通过引用传递的,因此在调用 usort 后,您将立即对数组进行排序。