在php中按两个字段排序对象数组

时间:2015-10-25 10:51:02

标签: php arrays sorting

我有一系列像这样的对象:http://pastebin.ca/3217309
我想先将这个数组排序到对象,然后按日期排序 目前我正在使用它来排序数组

function cmp($a, $b)
                   {
                       return strcmp($a->date, $b->date);
                   }

                   usort($data, "cmp");

并且工作正常,但它只按日期对数组进行排序,我希望在有序数组对象中,首先是pin = 1,然后是其他对象。 我希望我的问题很明确,抱歉英语不好!

1 个答案:

答案 0 :(得分:1)

如果要按其他条件排序,则只需将条件添加到排序功能中:

if ($a->pin != $b->pin) return $a->pin == 1 ? -1 : 1;

此条件仅适用于具有不相等引脚属性的$ item。将旧的比较功能与此结合使用将产生以下结果

function cmp($a, $b) {
    if ($a->pin != $b->pin) return $a->pin == 1 ? -1 : 1;
    return strcmp($a->date, $b->date);
}