Существует большое количество функций для удобной работы с ними. В частности, сегодня речь пойдёт о сортировке. Ничего нового открывать я не буду, просто познакомлю с самыми нужными для ежедневного кодинга.
Сортирование индексированных массивов: sort() and rsort()
Функция sort() сортирует значения в индексированном массиве в возрастающем порядке. Это означает, что A идёт перед Z, 0 -перед 9. Заглавные буквы перед строчными, буквы перед цифрами. Например:
$myArray = array( 1, 2, 'a', 'b', 'A', 'B' ); sort( $myArray ); // Отображает "A B a b 1 2" foreach ( $myArray as $val ) echo "$val ";
rsort() — это sort() наоборот:
$myArray = array( 1, 2, 'a', 'b', 'A', 'B' ); rsort( $myArray ); // Отображает "2 1 b a B A" foreach ( $myArray as $val ) echo "$val ";
Все sorting-функции возвращают true при успехе.
Сортировка ассоциативных массивов: asort() and arsort()
sort() и rsort() очень хороши для индексированных массивов, где не нужно волноваться о связи ключа и значения. Могут получится неожиданности) Например:
$movie = array( "title" => "Rear Window", "director" => "Alfred Hitchcock", "year" => 1954, "minutes" => 112 ); sort( $movie ); // Отобразит "Array ( [0] => Alfred Hitchcock [1] => Rear Window [2] => 112 [3] => 1954 )" print_r( $movie );
Видно, что произошла путаница, и оригинальная структура «title», «director», «year» and «minutes» поменялась.
Если же вы хотите сортировать ассоциативный массив по первичному ключу, используйте функции asort() и arsort() Эти функции учитывают связь ключей и их значений
За возрастающий порядок сортировки отвечает функция asort():
$movie = array( "title" => "Rear Window", "director" => "Alfred Hitchcock", "year" => 1954, "minutes" => 112 ); asort( $movie ); // Отображает "Array ( [director] => Alfred Hitchcock [title] => Rear Window [minutes] => 112 [year] => 1954 )" print_r( $movie );
arsort() наоборот:
$movie = array( "title" => "Rear Window", "director" => "Alfred Hitchcock", "year" => 1954, "minutes" => 112 ); arsort( $movie ); // Отображает "Array ( [year] => 1954 [minutes] => 112 [title] => Rear Window [director] => Alfred Hitchcock )" print_r( $movie );
Продолжение следуем…