根據特定屬性對物件數組進行排序
P粉426780515
2023-08-21 15:57:31
<p>如何依照欄位(如<code>name</code>或<code>count</code>)對這個物件陣列進行排序? </p>
<pre class="brush:php;toolbar:false;">Array
(
[0] => stdClass Object
(
[ID] => 1
[name] => Mary Jane
[count] => 420
)
[1] => stdClass Object
(
[ID] => 2
[name] => Johnny
[count] => 234
)
[2] => stdClass Object
(
[ID] => 3
[name] => Kathy
[count] => 4354
)
....</pre>
<p><br /></p>
這是一種使用閉包的更好的方式
請注意,這不是PHP文件中的內容,但如果您使用的是5.3 版本,支援閉包,可以提供可呼叫的參數。
使用usort,以下是從手冊中改編的範例:
你也可以使用任何可呼叫作為第二個參數。以下是一些範例:
使用匿名函數(從PHP 5.3開始)
在類別內部使用
使用箭頭函數(從PHP 7.4開始)
另外,如果你要比較數值,
fn($a, $b) => $a->count - $b->count
作為「比較」函數應該可以解決問題,或者,如果你想以另一種方式做同樣的事情,從PHP 7開始你可以使用太空船操作符,像這樣:fn($a, $b) => ; $a->count <=> $b->count
。