我想按評級對這個多維數組進行排序。PHP排序包含雙打的多維數組
Array
(
[0] => Array
(
[id] => 4
[image] => test-image.gif
[name] => Mia Panton
[description] => From Falkirk
Wearing: River Island
[month] => 04-2012
[rating] => 0.0000
[votes] => 0
)
[1] => Array
(
[id] => 3
[image] => test-image.gif
[name] => Sam Jane Raggett
[description] => From: Falkirk
Fav Shop: Republic
[month] => 04-2012
[rating] => 1.0000
[votes] => 1
)
[2] => Array
(
[id] => 2
[image] => test-image.gif
[name] => Sasha Westbrooke
[description] => From Falkirk
Wearing: River Island
[month] => 04-2012
[rating] => 4.0000
[votes] => 2
)
[3] => Array
(
[id] => 1
[image] => test-image.gif
[name] => Max Rose-Collins
[description] => From: London
Fav Shop: blah
[month] => 04-2012
[rating] => 3.3333
[votes] => 6
)
)
我用這這樣做
function orderByRating($a, $b) {
return $a['rating'] - $b['rating'];
}
usort($array, 'orderByRating');
但你可以看到它似乎不爲0的工作是在頂部,然後1,則4 3.然後 我我不確定它是否與數字是雙打的事實有關?
任何幫助,將不勝感激。謝謝
右鍵;問題是比較函數需要返回一個整數。只要評級總是一個整數,馬克斯的原始功能就會起作用。 – Charles 2012-04-28 17:27:46
謝謝,當我試圖找出它時,我錯過了關於php手冊的評論。 – 2012-04-28 17:32:12
我想你可以通過另一種方式做到這一點,做$ a ['rating'] * 10000 - $ b ['rating'] * 10000' – 2012-04-28 17:46:37