我有一系列像这样的对象:http://pastebin.ca/3217309
我想先将这个数组排序到对象,然后按日期排序
目前我正在使用它来排序数组
function cmp($a, $b)
{
return strcmp($a->date, $b->date);
}
usort($data, "cmp");
并且工作正常,但它只按日期对数组进行排序,我希望在有序数组对象中,首先是pin = 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);
}