PHP array_multisort ручной пример - PullRequest
2 голосов
/ 25 февраля 2011

Почему 4 - первое значение в $ ar2?Я почти уверен, что 4 должно быть в конце отсортированного массива, поскольку он естественно сортируется как SORT_ASC.

<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

В этом примере после сортировки первый массив будет содержать 0, 10, 100, 100. Второй массив будет содержать 4, 1, 2, 3. Также были отсортированы записи во втором массиве, соответствующие идентичным записям в первом массиве (100 и 100).

array(4) {
  [0]=> int(0)
  [1]=> int(10)
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(4)
  [1]=> int(1)
  [2]=> int(2)
  [3]=> int(3)
}

1 Ответ

4 голосов
/ 25 февраля 2011

Вы уже скопировали его из руководства:

В этом примере после сортировки первый массив будет содержать 0, 10, 100, 100. Второй массив будет содержать 4, 1, 2, 3. Записи во втором массиве, соответствующие идентичным записям в первом массиве (100 и 100), также были отсортированы.

Это означает, что второй массив отсортированпо порядку первого массива (первый массив определяет порядок для второго массива)

4 в $ar2 соответствует 0 в $ar1.0 находится в первой позиции в $a1, следовательно, 4 является первой в $ar2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...