我需要从最小的日期开始对数组进行排序。我使用了Usort,但它只考虑一天就对数组进行排序。我尝试使用示例在javascript中使用sort的代码,但是我需要在php中发生这种情况,或者找到一种将php数组转换为js的方法。
下面是代码:
{{2} }答案 0 :(得分:0)
您好,最后我在一个论坛上找到了一个解决方案,也许可以为其他人提供帮助。解决方案是在原始数组的基础上创建新的时间戳数组。然后对这个新数组进行排序。只需在回显新数组的第一个元素后加上“ date”,即可返回第一个日期。这是代码:
<?php
$ArrayDates= array ('22/03/2018','09/04/2018', '26/03/2018',
'27/11/2017','22/01/2018', '06/09/2017');
function date_to_timestamp($d){
$newarr = array();
foreach($d as $f) {
$arr=explode("/",$f);
array_push($newarr, mktime(0,0,0,$arr[0],$arr[1],$arr[2]));
}
return $newarr;
}
function cmp2($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$third = date_to_timestamp($ArrayDates);
usort($third, "cmp2");
echo date('m/d/Y', $third[0]);
?>
答案 1 :(得分:0)
这将按升序对日期数组进行排序。
$date = array('23-02-2012','21-01-2014','11-01-2010','09-02-2001','01-01-2019');
function date_sort($a, $b) {
return strtotime($a) - strtotime($b);
}
usort($date, "date_sort");
print_r($date);
输出:-
Array (
[0] => 09-02-2001
[1] => 11-01-2010
[2] => 23-02-2012
[3] => 21-01-2014
[4] => 01-01-2019
)