在多维数组中排序

时间:2012-04-19 15:34:27

标签: php

我在PHP中有这个数组:

foreach($rss_items as $item) :
    $contenu[] = array (
        "auteur" => $author,
        "date" => $item->get_date(),
        "contenu" => $item->get_content()
    );

最后,我的数组由6个部分组成,每个部分都包含上面的3个变量。 我的问题是:如何按日期对数组进行排序并使用strtotime,因为使用此函数排序更容易。

strtotime($item->get_date());

1 个答案:

答案 0 :(得分:0)

使用usort根据您自己的回调函数进行排序。

usort($contenu, function($a, $b){
    $aSort = strtotime($a['date']);
    $bSort = strtotime($b['date']);

    if($aSort === $bSort) return 0;
    return ($aSort < $bSort) ? -1 : 1;
});

注意:这只适用于PHP 5.3+。如果你有5.2或更低,你可以使用create_function

usort($contenu, create_function('$a, $b','
    $aSort = strtotime($a["date"]);
    $bSort = strtotime($b["date"]);

    if($aSort === $bSort) return 0;
    return ($aSort < $bSort) ? -1 : 1;
'));