在Array中排序日期

时间:2014-01-06 05:44:45

标签: php arrays sorting

我有这个数组

$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

如何正确地做到这一点?

谢谢你们

1 个答案:

答案 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");