- PHP5 Сортировка массивов
- PHP Функции сортировки массивов
- PHP Сортировка массива в порядке возрастания
- Пример
- Пример
- PHP Сортировка массива в порядке убывания
- Пример
- Пример
- PHP Сортировка массива по возрастанию, со значением
- Пример
- PHP Сортировка массива по возрастанию, по ключу
- Пример
- PHP Сортировка массива по убыванию, по значению
- Пример
- PHP Сортировка массива по убыванию, по ключу
- Пример
- PHP Полный справочник массива
- ВЫБОР ЦВЕТА
- Сообщить об ошибке
- Ваше предложение:
- Спасибо Вам за то, что помогаете!
- Сортировка массивов
- User Contributed Notes 2 notes
- Упорядочить по алфавиту массив php
- Функция is_array
- Функции count/sizeof
- Функции shuffle
- Функции compact
- Сортировка массивов
- Сортировка по ключам
- Естественная сортировка
- Сортировка массивов в PHP
- Функции PHP для сортировки массивов
- Сортировка массивов по возрастанию
- Пример
- Пример
- Сортировка массивов по убыванию
- Пример
- Пример
- Сортировка ассоциативных массивов в порядке возрастания по значению
- Пример
- Сортировка ассоциативных массивов по значению в порядке убывания
- Пример
- Сортировка ассоциативных массивов в порядке возрастания по ключу
- Пример
- Сортировка ассоциативных массивов в порядке убывания по ключу
- Пример
- PHP Экзаменатор
PHP5 Сортировка массивов
Элементы в массиве, могут быть отсортированы в алфавитном или числовом порядке, по убыванию или по возрастанию.
PHP Функции сортировки массивов
В этой главе мы рассмотрим следующие функции сортировки массива PHP:
- sort() — сортировка массивов в порядке возрастания
- rsort() — сортировка массивов в порядке убывания
- asort() — сортировать ассоциативный массив в порядке возрастания значений
- ksort() — сортировка ассоциативных массивов в порядке возрастания в соответствии с ключом
- arsort() — сортировка ассоциативных массивов в порядке убывания в соответствии со значением
- krsort() — сортировка ассоциативных массивов в порядке убывания в соответствии с ключом
PHP Сортировка массива в порядке возрастания
В следующем примере выполняется сортировка элементов массива $cars в алфавитном порядке:
Пример
В следующем примере сортируются элементы массива $numbers в порядке возрастания цифровой последовательности:
Пример
PHP Сортировка массива в порядке убывания
В следующем примере выполняется сортировка элементов массива $cars в алфавитном порядке по убыванию:
Пример
В следующем примере выполняется сортировка элементов массива $numbers в порядке убывания цифровой последовательности:
Пример
PHP Сортировка массива по возрастанию, со значением
В следующем примере выполняется сортировка ассоциативного массива по возрастанию, в соответствии со значением:
Пример
PHP Сортировка массива по возрастанию, по ключу
В следующем примере выполняется сортировка ассоциативного массива по возрастанию, согласно ключу:
Пример
PHP Сортировка массива по убыванию, по значению
Следующий пример сортирует ассоциативный массив в порядке убывания, по значению:
Пример
PHP Сортировка массива по убыванию, по ключу
Следующий пример сортирует ассоциативный массив в порядке убывания, согласно ключу:
Пример
PHP Полный справочник массива
Для полной справки всех функций массива, перейдите к нашему полному PHP Справочник массивов.
Справочник содержит краткое описание и примеры использования каждой функции!
Мы только что запустили
SchoolsW3 видео
ВЫБОР ЦВЕТА
Сообщить об ошибке
Если вы хотите сообщить об ошибке или внести предложение, не стесняйтесь отправлять на электронное письмо:
Ваше предложение:
Спасибо Вам за то, что помогаете!
Ваше сообщение было отправлено в SchoolsW3.
ТОП Учебники
ТОП Справочники
ТОП Примеры
Получить сертификат
SchoolsW3 оптимизирован для бесплатного обучения, проверки и подготовки знаний. Примеры в редакторе упрощают и улучшают чтение и базовое понимание. Учебники, ссылки, примеры постоянно пересматриваются, чтобы избежать ошибок, но не возможно гарантировать полную правильность всего содержания. Некоторые страницы сайта могут быть не переведены на РУССКИЙ язык, можно отправить страницу как ошибку, так же можете самостоятельно заняться переводом. Используя данный сайт, вы соглашаетесь прочитать и принять Условия к использованию, Cookies и политика конфиденциальности.
Сортировка массивов
В PHP есть несколько функций для сортировки массивов, на этой странице даётся их общее описание.
Основные различия между функциями:
- В одних функциях массивы ( array ) сортируются по ключам элементов, в других по значениям: $array[‘ключ’] = ‘значение’;
- В каких-то функциях связь между ключами и значениями после сортировки сохраняется, в каких-то нет. Это может приводить к тому, что ключи будут сбрасываться в числовые значения (0, 1, 2, . ).
- Различия в порядке сортировки: алфавитный, возрастающий, убывающий, числовой, естественный, случайный или определённый пользователем
- Примечание: Все функции сортировки модифицируют переданный массив, а не возвращают отсортированную копию
- Если какая-либо из этих функций сортировки оценивает два элемента как равные, они сохраняют свой исходный порядок. До PHP 8.0.0 их порядок не был определён (сортировка была нестабильной).
Имя функции | Сортирует по | Сохраняет связь ключ — значение | Порядок сортировки | Похожие функции |
---|---|---|---|---|
array_multisort() | значению | строковые ( string ) ключи да, числовые ( int ) — нет | первый массив или настройки сортировки | array_walk() |
asort() | значению | да | по возрастанию | arsort() |
arsort() | значению | да | по убыванию | asort() |
krsort() | ключу | да | по убыванию | ksort() |
ksort() | ключу | да | по возрастанию | krsort() |
natcasesort() | значению | да | естественный, нечувствительный к регистру | natsort() |
natsort() | значению | да | естественный | natcasesort() |
rsort() | значению | нет | по убыванию | sort() |
shuffle() | значению | нет | случайный | array_rand() |
sort() | значению | нет | по возрастанию | rsort() |
uasort() | значению | да | определяется пользователем | uksort() |
uksort() | ключу | да | определяется пользователем | uasort() |
usort() | значению | нет | определяется пользователем | uasort() |
User Contributed Notes 2 notes
While this may seem obvious, user-defined array sorting functions ( uksort(), uasort(), usort() ) will *not* be called if the array does not have *at least two values in it*.
function usortTest ( $a , $b ) var_dump ( $a );
var_dump ( $b );
return — 1 ;
>
$test = array( ‘val1’ );
usort ( $test , «usortTest» );
$test2 = array( ‘val2’ , ‘val3’ );
usort ( $test2 , «usortTest» );
The first array doesn’t get sent to the function.
Please, under no circumstance, place any logic that modifies values, or applies non-sorting business logic in these functions as they will not always be executed.
Another way to do a case case-insensitive sort by key would simply be:
uksort ( $array , ‘strcasecmp’ );
?>
Since strcasecmp is already predefined in php it saves you the trouble to actually write the comparison function yourself.
Упорядочить по алфавиту массив php
Рассмотрим некоторые встроенные наиболее распространенные функции, которые мы можем применять при работе с массивами.
Функция is_array
Функция is_array() проверяет, является ли переменная массивом, и если является, то возвращает true , иначе возвращает false . Например:
$users = ["Tom", "Bob", "Sam"]; $isArray = is_array($users); echo ($isArray==true)?"это массив":"это не массив";
Функции count/sizeof
Функция count() и sizeof() получают количество элементов массива:
$users = ["Tom", "Bob", "Sam"]; $number = count($users); // то же самое, что // $number = sizeof($users); echo "В массиве users $number элемента/ов";
Функции shuffle
Функция shuffle перемешивает элементы массивы случайным образом:
$users = ["Tom", "Bob", "Sam", "Alice"]; shuffle($users); print_r($users); // один из возможных вариантов //Array ( [0] => Bob [1] => Tom [2] => Alice [3] => Sam )
Функции compact
Функция compact позволяет создать из набора переменных ассоциативный массив, где ключами будут имена переменных:
Apple II [producer] => Apple [year] => 1978 ) ?>
Функция compact получает в скобках набор переменных. Каждая переменная указывается в кавычка без знака $. Результатом функции является новый массив.
Сортировка массивов
В PHP имеются два типа сортировки: сортировка строк по алфавиту и сортировка чисел по возрастанию/убыванию. Если сортируемые значения представляют строки, то они сортируются по алфавиту, если числа — то они сортируются в порядке возрастания чисел. PHP по умолчанию самостоятельно выбирает тип сортировки.
Для сортировки по возрастанию используется функция asort :
$users = ["Tom", "Bob", "Sam", "Alice"]; asort($users); print_r($users); // вывод отсортированного массива // Array ( [3] => Alice [1] => Bob [2] => Sam [0] => Tom )
В данном случае значения массива представляют строки, поэтому PHP выберет сортировку по алфавиту. Однако с помощью дополнительного параметра мы можем явно указать интерпретатору PHP тип сортировки. Данный параметр может принимать три значения:
- SORT_REGULAR : автоматический выбор сортировки
- SORT_NUMERIC : числовая сортировка
- SORT_STRING : сортировка по алфавиту
Укажем явно тип сортировки:
Чтобы отсортировать массив в обратном порядке, применяется функция arsort :
Сортировка по ключам
Функция asort производит сортировку по значениям элементов, но также существует и еще и сортировка по ключам. Она представлена функцией ksort :
$states = ["Spain" => "Madrid", "France" => "Paris", "Germany" => "Berlin", ]; asort($states); print_r($states); // массив после asort - сортировка по значениям элементов // Array ( [Germany] => Berlin [Spain] => Madrid [France] => Paris ) ksort($states); print_r($states); // массив после ksort - сортировка по ключам элементов // Array ( [France] => Paris [Germany] => Berlin [Spain] => Madrid )
Сортировка по ключам в обратном порядке выполняется функцией krsort() :
Естественная сортировка
Хотя выше описанные функции сортировки прекрасно выполняют свою работу, но их возможностей все-таки недостаточно. Например, отсортируем по возрастанию следующий массив:
Windows 10 [0] => Windows 7 [1] => Windows 8 ) ?>
Так как значения представляют строки, то PHP сортирует по алфавиту. Однако подобная сортировка не учитывает числа и регистр. Поэтому значение «Windows 10» будет идти в самом начале, а не в конце, как должно было быть. И для решения этой проблемы в PHP есть функция natsort() , которая выполняет естественную сортировку:
Windows 7 [1] => Windows 8 [2] => Windows 10) ?>
Если нам надо еще при этом, чтобы сортировка не учитывала регистр, то мы можем применить функцию natcasesort() :
Сортировка массивов в PHP
Сортировка относится к упорядочиванию элементов массива в алфавитном, числовом порядке с возрастанием или убыванием в соответствии с некоторой линейной зависимостью между элементами. Сортировка массивов значительно повышает эффективность поиска.
Функции PHP для сортировки массивов
PHP поставляется с рядом встроенных функций, разработанных специально для сортировки элементов массива различными способами. Здесь мы рассмотрим некоторые из этих функций, наиболее часто используемых для сортировки массивов:
- sort() — сортирует массивы в порядке возрастания
- rsort() — сортирует массивы в порядке убывания
- asort() — сортирует ассоциативные массивы в порядке возрастания по значению
- ksort() — сортирует ассоциативные массивы в порядке возрастания по ключу
- arsort() — сортирует ассоциативные массивы в порядке убывания по значению
- krsort() — сортирует ассоциативные массивы в порядке убывания по ключу
Сортировка массивов по возрастанию
Функция sort() используется для сортировки элементов индексированного массива в порядке возрастания (в алфавитном порядке для букв):
Пример
Результат выполнения кода:
Аналогично вы можете отсортировать числовые элементы массива в порядке возрастания:
Пример
Результат выполнения кода:
Сортировка массивов по убыванию
Функция rsort() используется для сортировки элементов индексированного массива в порядке убывания (в алфавитном порядке для букв):
Пример
Результат выполнения кода:
Точно так же вы можете отсортировать числовые элементы массива в порядке убывания:
Пример
Результат выполнения кода:
Сортировка ассоциативных массивов в порядке возрастания по значению
Функция asort() сортирует элементы ассоциативного массива в порядке возрастания в соответствии со значением. Принцип её работы аналогичен функции sort() , но при сортировке сохраняется связь между ключами и их значениями:
Пример
"37", "Борис"=>"43", "Николай"=>"39"); asort($age); foreach($age as $x => $x_value) < echo "Ключ=" . $x . ", Значение=" . $x_value; echo "
"; > ?>
Результат выполнения кода:
Сортировка ассоциативных массивов по значению в порядке убывания
Функция arsort() сортирует элементы ассоциативного массива в порядке убывания в соответствии со значением. Принцип её работы аналогичен функции rsort() , но при сортировке сохраняет связь между ключами и их значениями:
Пример
"37", "Борис"=>"43", "Николай"=>"39"); arsort($age); foreach($age as $x => $x_value) < echo "Ключ=" . $x . ", Значение=" . $x_value; echo "
"; > ?>
Результат выполнения кода:
Сортировка ассоциативных массивов в порядке возрастания по ключу
Функция ksort() сортирует элементы ассоциативного массива в порядке возрастания по их ключам. Она сохраняет связь между ключами и их значениями при сортировке, так же как и функция asort() :
Пример
"37", "Борис"=>"43", "Николай"=>"39"); ksort($age); foreach($age as $x => $x_value) < echo "Ключ=" . $x . ", Значение=" . $x_value; echo "
"; > ?>
Результат выполнения кода:
Сортировка ассоциативных массивов в порядке убывания по ключу
Функция krsort() сортирует элементы ассоциативного массива в порядке убывания по их ключам . Она сохраняет связь между ключами и их значениями при сортировке, так же как и функция arsort() :
Пример
"37", "Борис"=>"43", "Николай"=>"39"); krsort($age); foreach($age as $x => $x_value) < echo "Ключ=" . $x . ", Значение=" . $x_value; echo "
"; > ?>
Результат выполнения кода:
PHP Экзаменатор
Желаете больше задачек? Они у нас есть) Реши задачку по массивам.