[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: array_multisort()
e-gorych
Подскажите, гуру, почему array_multisort() сортирует значения именно так? Почему "a" > "11", например?
Второй массив сортируется с оглядкой на первый? А если будет третий?

Пример #2 Сортировка многомерного массива

$ar = array(
array("10", 11, 100, 100, "a"),
array( 1, 2, "2", 3, 1)
);

array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);


Цитата
В вышеприведенном примере, после сортировки, первый массив будет содержать "10", 100, 100, 11, "a" (его элементы были отсортированы в возрастающем порядке), а второй массив будет содержать 1, 3, "2", 2, 1 (элементы отсортированы как числа, в порядке убывания).
T1grOK
Цитата (e-gorych @ 18.05.2014 - 06:58)
Почему "a" > "11", например?

Потому что сравниваются как строки.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
e-gorych
Не заметил SORT_STRING :huh:

А насчет array_multisort() -

$a = array('3', '2', '1', '4', '5');
$b = array('AA', 'BB', 'CC', 'DD', 'EE');
$c = array('aa', 'bb', 'cc', 'dd', 'ee');
array_multisort($a, SORT_ASC, $b, $c);
var_dump($a);


Какие бы я параметры сортировки (ASC, DESC) не указывал для $b и $c, они сработают только если в массиве $a будут одинаковые значения?
T1grOK
Естественно. Иначе бы это нельзя было назвать сортировкой))

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
e-gorych
Ну ясно. В офф. документации почему-то все очень кратенько.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.