在 PHP 中对对象进行排序
在PHP中对对象进行排序的优雅方法是什么?我很想完成类似的事情。
$sortedObjectArary = sort($unsortedObjectArray, $Object->weight);
基本上指定我要排序的数组以及要排序的字段。我研究了多维数组排序,那里可能有一些有用的东西,但我没有看到任何优雅或明显的东西。
在PHP中对对象进行排序的优雅方法是什么?我很想完成类似的事情。
$sortedObjectArary = sort($unsortedObjectArray, $Object->weight);
基本上指定我要排序的数组以及要排序的字段。我研究了多维数组排序,那里可能有一些有用的东西,但我没有看到任何优雅或明显的东西。
几乎是逐字逐句地从手册中摘录的:
function compare_weights($a, $b) {
if($a->weight == $b->weight) {
return 0;
}
return ($a->weight < $b->weight) ? -1 : 1;
}
usort($unsortedObjectArray, 'compare_weights');
如果希望对象能够自行排序,请参阅此处的示例 3:http://php.net/usort
对于 php >= 5.3
function osort(&$array, $prop)
{
usort($array, function($a, $b) use ($prop) {
return $a->$prop > $b->$prop ? 1 : -1;
});
}
请注意,这使用匿名函数/闭包。可能会发现查看php文档很有用。