我有一个多维数组,我想根据'评价'排序......但我也希望索引从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