Як робиться сортування масивів?
Часто при вирішенні певних завдань потрібно зробити сортування даних, які зберігаються в масиві. Що таке сортування масивів? Ось, наприклад, граючи в преферанс, люди розкладають свої карти за значенням і масті. Це дає можливість визначити, яких ще карт їм не вистачає. А в словниках все упорядковується за алфавітом. Прикладів можна навести багато. Сортування - перегрупування певної множини об`єктів в будь-якому порядку за заданим ознакою. Сортування масивів потрібно досить часто. Для цього застосовуються різні методи. Щоб зрозуміти їх суть, досить розглянути детально кілька способів.
На основі чого роблять
Важливо розуміти, що масив складається з численних пар ключів і певних значень. Сортування масивів на мові Сі робиться за допомогою десятків рядків коду, а на мові PHP це досягається лише однієї нескладної командою. Сортування масивів можлива на основі ключів або значень. Ще можна розподіляти значення, залишивши їм існуючі ключі або присвоївши нові.
Головні відмінності функцій
Сортування масиву PHP можлива за допомогою різних функцій. Давайте розглянемо, чим вони відрізняються:
- Одні функції сортують масиви по ключам їх елементів, а інші - за значеннями.
- Буває різний порядок сортування: спадаючий, зростаючий, натуральний, числовий, алфавітний, визначений користувачами або випадковий.
- Деякі функції здатні зберігати після сортування зв`язок, який існує між ключем і значенням. Але є функції, в яких ключі скинуться в нові значення.
- Кожна функція здійснює модифікацію переданого масиву. Відсортовану копію вони не повертають.
- Порядок сортування вважається невизначеним, коли функція визначає два елементи, як рівні. Це нестабільна сортування.
Деякі функції сортування масивів в PHP
Функції sort () і rsort (). Sort () впорядковує в алфавітному порядку масив. Звернемо увагу: дана функція чутлива до регістру. Відбувається сортування за значеннями без урахування ключів. Rsort () сортує в зворотному порядку теж за значеннями і не враховує ключі.
Asort () - це одна з функцій, яка зберігає відносини ключів і значень. Її корисно застосовувати для асоціативних масивів, коли це важливо.
У прикладі ключами обрані найменування фруктів, а значення - це ціни. Сортування відбувається за зростанням ціни. Якщо необхідна сортування за назвам фруктів, то потрібна функція ksort (), яка робить сортування по ключам. Arsort () здійснює сортування одновимірних масивів з індексами (описовими) спаданням значень. Krsort () сортує по спадаючій ключів елементів.
Двовимірний масив
Цікава сортування двовимірного масиву. Це можна робити по-різному. У PHP є можливість порівнювати два числа або два рядки. Але в будь-якому багатовимірному масиві кожен з елементів являє собою масив. У PHP, щоб порівняти кілька масивів, треба створити певний метод. Розглянемо двовимірний масив, в якому зберігається скорочена назва фруктів, повна назва і ціна. Елементи масиву можна відсортувати в алфавітному порядку за скороченим назвам.
У прикладі у нашій функції ім`я compare (порівняння). У неї 2 аргументу - x, y. Функція повинна прийняти 2 значення, після чого визначити порядок. Параметри x, y - 2 масиву, які знаходяться всередині y основного масиву. Щоб порівнювати description-елементи з масивів, що передані у функцію, потрібні змінні $ x [1], $ y [1]. У рядку return1 відбувається повернення значення коду, який викликав функцію. В основі сортування нашого масиву функція usort (). Сортування йде за правилами, які описує функція compare ().
Тепер сортування масивів в PHP стане для вас зрозумілою.