РЕДАКТИРОВАТЬ : Для тех, кто может столкнуться с этим сообщением с похожей проблемой, эта проблема была решена путем использования предоставленного konforce ответа и небольшого изменения пользовательской функции сортировки :
function cmp($a, $b) {
if ($a[5] == $b[5]) {
return ($a[3] < $b[3]) ? -1 :1;
}
return ($a[5] > $b[5]) ? -1 : 1;
}
Уведомление $a[5] == $b[5]
не возвращает ноль. Он был изменен, чтобы проверить, у кого больше всего потерь, а затем отсортировать его в порядке ASC. Я уверен, что вы даже можете продолжать и добавить еще одно if-утверждение, если у них те же потери.
Наконец, все, что вы делаете, это usort($ARRAY, "cmp");
и finito !!!
Исходное сообщение
Приношу свои извинения за то, что предложил еще один вопрос сортировки массива MD, но я просто не понимаю. Я искал много
для решения, и хотя многие сайты предоставили то, что казалось логичным ответом, я все еще не смог понять это.
Моя проблема в том, что я все еще учусь, мне было довольно сложно понять концепцию использования usort с пользовательским сравнением.
функция. По крайней мере, это то, что я видел больше всего, когда другие пытались сортировать массивы MD.
Я работаю над небольшим проектом, чтобы улучшить мои навыки работы с PHP. Это очень простой сценарий турнирной таблицы, который содержит информацию о команде в массиве. Я хотел бы отсортировать массив по большинству точек ($ array [X] [X] [5]).
Итак, массив выглядит примерно так:
Array (
[0] => Array (
[0] => Array (
[0] => cooller
[1] => 6
[2] => 6
[3] => 0
[4] => 0
[5] => 18
)
)
[1] => Array (
[0] => Array (
[0] => strenx
[1] => 9
[2] => 5
[3] => 1
[4] => 3
[5] => 18
)
)
[2] => Array (
[0] => Array (
[0] => rapha
[1] => 10
[2] => 8
[3] => 1
[4] => 1
[5] => 25
)
) [3] => Array (
[0] => Array (
[0] => ronald reagan
[1] => 5
[2] => 4
[3] => 0
[4] => 1
[5] => 13
)
)
)
Я бы хотел отсортировать его по большинству точек (ячейка № 5), чтобы он выглядел следующим образом после сортировки:
Array (
[0] => Array (
[0] => Array (
[0] => rapha
[1] => 10
[2] => 8
[3] => 1
[4] => 1
[5] => 25
)
)
[1] => Array (
[0] => Array (
[0] => cooller
[1] => 6
[2] => 6
[3] => 0
[4] => 0
[5] => 18
)
)
[2] => Array (
[0] => Array (
[0] => strenx
[1] => 9
[2] => 5
[3] => 1
[4] => 3
[5] => 18
)
)
[3] => Array (
[0] => Array (
[0] => ronald reagan
[1] => 5
[2] => 4
[3] => 0
[4] => 1
[5] => 13
)
)
)
Игрок с 25 очками будет наверху, затем 18, 18 и, наконец, 13. Извините за мой предыдущий пост, ему было трудно правильно сформулировать мой вопрос. Спасибо заранее!