我有这个数组
$array = array(
array(
"start" => "2013-12-22",
"end" => "2013-12-25"
),
array(
"start" => "2013-12-30",
"end" => "2013-12-31"
),
array(
"start" => "2013-11-28",
"end" => "2013-11-30"
),
array(
"start" => "2014-07-12",
"end" => "2014-07-18"
),
array(
"start" => "2014-08-01",
"end" => "2014-08-07"
)
);
我想根据“开始”日期升序缩短日期。所以我用这个 usort 来做到这一点
function sortFunction($a, $b) {
return strtotime($a['start']) - strtotime($b['start']);
}
usort($array, "sortFunction");
print_r($array);
但是我收到以下消息,并且日期未排序。
PHP Warning: usort() expects parameter 2 to be a valid callback, function 'sortFunction' not found or invalid function name
如何正确做?
我认为你定义'sortFunction'超出了你调用usort($array, "sortFunction");的范围
您必须在调用 usort($array, "sortFunction"); 的同一方法或作用域中定义和实现 'sortFunction'
替代方案:
使用这个:
usort($array,function ($a, $b) {
return strtotime($a['start']) - strtotime($b['start']);
});
而不是
function sortFunction($a, $b) {
return strtotime($a['start']) - strtotime($b['start']);
}
usort($array, "sortFunction");