Итак, я отсортировал многомерный массив с uasort
в порядке убывания. Я сделал var_dump($winrateArray)
, и он отсортирован правильно. Самое высокое значение - в первом возвращенном массиве. Однако, когда я пытаюсь использовать var_dump($winrateArray[0][3])
, где я ожидаю, что это самое высокое значение, это не так. Вместо этого он находится в $winrateArray[1][3]
. Я правильно использую uasort
?PHP сортировка массива с uasort
Unsorted свалка:
array(2) { [0]=> array(4) { [0]=> string(2) "18" [1]=> string(1) "1" [2]=> int(0) [3]=> int(1) } [1]=> array(4) { [0]=> string(2) "31" [1]=> string(1) "1" [2]=> int(100) [3]=> int(101) } }
Рассортировано свалка:
array(2) { [1]=> array(4) { [0]=> string(2) "31" [1]=> string(1) "1" [2]=> int(100) [3]=> int(101) } [0]=> array(4) { [0]=> string(2) "18" [1]=> string(1) "1" [2]=> int(0) [3]=> int(1) } }
Конкретная свалка:
int(1)
.
$winrateArray[0][0] = '18';
$winrateArray[0][1] = '1';
$winrateArray[0][2] = 0;
$winrateArray[0][3] = 1;
$winrateArray[1][0] = '31';
$winrateArray[1][1] = '1'
$winrateArray[1][2] = 100;
$winrateArray[1][3] = 101;
var_dump($winrateArray);
function cmp($a, $b){
if ($a[3] == $b[3]){
return 0;
}
return ($a[3] < $b[3]) ? 1 : -1;
}
uasort($winrateArray, 'cmp');
var_dump($winrateArray);
var_dump($winrateArray[0][3]);
отправьте пример набора данных, которые вы используете, нам будет очень полезно помочь и проверить. – Clay
Нам нужно увидеть массив и результаты. – PHPglue
Как я вижу, результат упорядочен правильно, но ключи сохранены, и вы этого не хотите? – krasipenkov