我尝试按类类别排序一系列玩家角色(在游戏中)。每个玩家的等级用数字表示。我希望这些类按字母顺序排列,而不是根据我的数据如何定义每个类的数字排列。
我的代码是:
$AlphabeticalClass = array(
1 => 11,
2 => 6,
3 => 3,
4 => 8,
5 => 7,
6 => 1,
7 => 9,
8 => 4,
9 => 10,
10 => 5,
11 => 2,
);
function CharacterSort($Char1, $Char2)
{
$c1 = $Char1['character']['class'];
$c2 = $Char2['character']['class'];
//$c1 = $AlphabeticalClass[$c1];
//$c2 = $AlphabeticalClass[$c2];
return strcmp($c1, $c2);
}
当评论出现时,排序完全发生(尽管以我不想要的方式排序类):
删除注释后,重新映射类重新值按字母顺序排列:
如上所示,类排序已被抛出窗口。关于造成这种情况的原因有什么想法吗?
usort
应用于组织数据的数组,如下所示:
答案 0 :(得分:0)
如果类是数字,您可能希望使用-
而不是strcmp()
:
function CharacterSort($Char1, $Char2) {
$c1 = $Char1['character']['class'];
$c2 = $Char2['character']['class'];
return $c1 -$c2;
}