我有一個多維數組,我想根據'評價'排序......但我也希望索引從1開始,這是我手動創建這些時使用的。當我使用usort時,它重新排列了數組,但現在它們從索引0開始,所以我無法從1 - 6進行循環,因爲在排序後6未定義。php排序多維數組,但開始索引在1
在1位開始我的$數組更清晰,所以$ player [$ i]表示實際玩家數量。這裏是我的陣列看起來像以前那種
$player[1]['rating'] = 8
$player[2]['rating'] = 5
$player[3]['rating'] = 10
這是我的排序功能:
function sortByrating($a, $b) {
if ($a['rating'] == $b['rating']) {
return 0;
}
return ($a['rating'] < $b['rating']) ? -1 : 1;
}
而且我通過
usort($player, 'sortByRating');
「玩家數量」的含義有應保持關聯?即誰擁有密鑰'1'應該在排序後仍然具有密鑰'1',但該密鑰可能在其他地方被排序?在這種情況下,你應該使用'uasort'。 - 否則,如果'1'只用於輸出「1.」,則不應該在這裏向後彎曲;數組爲零索引,句點,當需要時爲視覺輸出添加'+ 1'。 – deceze
可能應該使用'foreach()'循環或從0開始for()'循環。 – Enstage
可能的重複[如何將數組鍵從1開始更改爲0](http:// stackoverflow。 com/questions/5374202/how-to-change-the-array-key-to-start-from-1-instead-of 0) – mickmackusa