2016-12-15 241 views
0

我有一個從MySQL查詢行數組。我需要做的是按字段之一對其進行排序(無符號整型)。我通過引用來查看,但不知道我究竟如何對對象數組進行排序,因爲PHP似乎沒有像運算符重載(您在C++中執行的操作)的情況,並且一些現有函數表示它們不穩定,這意味着2個相同的元素,它們在排序數組中的位置是未定義的,這聽起來真是怪異的IMO。 那麼,當你需要對一組對象進行排序時,PHP中的一般方法是什麼?如何通過PHP中的對象字段對對象數組進行排序?

+0

[usort()](http://www.php.net/manual/en/function.usort.php) –

+0

http://stackoverflow.com/questions/8456029/how-does-usort-work – 2016-12-15 19:02:42

回答

1

您需要編寫自己的函數來進行比較。一旦你有這個功能,你可以使用usort - http://php.net/manual/en/function.usort.php

請注意,這也適用於排序對象數組,你只需要改變你的比較函數。

+0

如果兩個成員比較相等,它們在排序數組中的相對順序是未定義的。 我可以做到這一點,以便我的比較函數永遠不會返回0,並且完全像「<」運算符一樣操作? –

+0

當然可以。所有usort()函數關心的是它可以將2件事傳遞給你的函數,並且它返回-1,1或0.只要決定是否需要相等的值總是返回爲「小於」或「大於」並去爲它:) – ivanivan

相關問題