在 PHP 中排序对象

新手上路,请多包涵

在 PHP 中对对象进行排序的优雅方法是什么?我很想完成类似的事情。

 $sortedObjectArary = sort($unsortedObjectArray, $Object->weight);

基本上指定我要排序的数组以及我要排序的字段。我研究了多维数组排序,那里可能有一些有用的东西,但我没有看到任何优雅或明显的东西。

原文由 jW. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 345
2 个回答

手册中几乎一字不差:

 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

原文由 Kent Fredric 发布,翻译遵循 CC BY-SA 3.0 许可协议

对于 php >= 5.3

 function osort(&$array, $prop)
{
    usort($array, function($a, $b) use ($prop) {
        return $a->$prop > $b->$prop ? 1 : -1;
    });
}

请注意,这使用匿名函数/闭包。可能会发现查看有用的 php 文档。

原文由 Will Shaver 发布,翻译遵循 CC BY-SA 2.5 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏