Я пытался упорядочить массив игровых персонажей (в игре) по типу класса. Класс каждого игрока представлен числом. Я бы предпочел, чтобы классы были расположены в алфавитном порядке, а не численно, в зависимости от того, как мои данные определяют каждый класс.
Мой код такой:
$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
применяется к массиву, который организует данные следующим образом:
Если класс числовой, вы можете использовать -
вместо strcmp()
:
function CharacterSort($Char1, $Char2) {
$c1 = $Char1['character']['class'];
$c2 = $Char2['character']['class'];
return $c1 -$c2;
}
Других решений пока нет …