我有这个数组
$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"
)
);
我希望根据“开始”日期升序来缩短日期。所以我用这个用来做那个
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
如何正确地做到这一点?
谢谢你们答案 0 :(得分:1)
我认为你在你调用usort($ array,“sortFunction”)的范围之外定义'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");