Уроки PHP – як робити сортування даних в масиві

В сьогоднішньому уроці ми розглянемо основні моменти, які стосуються сортування даних масиву в PHP. Ви дізнаєтеся найбільш важливі вбудовані в PHP функції, які призначені для сортування масивів.

 

 

Введення в сортування масивів в PHP

Досить часто доводиться сортувати дані в масивах. Можливо, вам потрібно це робити в алфавітному або числовому порядку, в порядку зростання або зменшення. Для цього PHP надає декілька корисних функцій. У наступному розділі ми покажемо вам, як використовувати ці функції. Для початку візьмемо невеликий масив як приклад:

<?php
$masuvKolyoriv = array(
  "apple"  => "red",
  "grass"  => "green",
  "sky"    => "blue",
  "night"  => "black",
  "wall"   => "white"
);
?>

 

 

Тепер, якщо ви виведете масив, ви побачите елементи в тому ж порядку, в якому вони були визначені:

<?php
foreach ($masuvKolyoriv as $key => $value) {
  echo '<p>' . $key . ' - ' . $value . '</p>';
}
?>

 

 

Результат буде таким:

apple - red
grass - green
sky - blue
night - black
wall - white

 

 

Тепер перейдемо до процесу сортування цього масиву.

 

 

Основні функції сортування масиву в PHP

Для сортування масиву в PHP ви можете використовувати вбудовані функції sort і rsort. Різниця між ними полягає в тому, що rsort сортує масив у зворотному порядку (по зменшенню), а sort – в звичайному порядку (по зростанню).

Давайте подивимося, як це працює. Відсортуємо масив за допомогою функції sort, перш ніж відобразити його вміст. Код виглядає так:

<?php
sort($masuvKolyoriv);
foreach ($masuvKolyoriv as $key => $value) {
  echo '<p>' . $key . ' - ' . $value . '</p>';
}
?>

 

 

Результат буде таким:

0 - black
1 - blue
2 - green
3 - red
4 - white

 

 

Як ви могли помітити, ця функція призначає нові ключі для елементів в масиві. Функція сортування sort видаляє всі існуючі ключі, які ви могли призначити, замість того, щоб просто впорядкувати ключі. Вирішення цієї проблеми розглянемо пізніше.

Якщо вам потрібен зворотний порядок, єдине, що вам потрібно зробити, це використовувати замість цього функцію rsort, наприклад, так:

<?php
rsort($masuvKolyoriv);
foreach ($masuvKolyoriv as $key => $value) {
  echo '<p>' . $key . ' - ' . $value . '</p>';
}
?>

 

 

І результат буде наступний:

0 - white
1 - red
2 - green
3 - blue
4 - black

 

 

Тепер давайте дізнаємося, як вирішити проблему з втратою ключів, що важливо, якщо ви використовуєте асоціативні масиви.

 

 

Сортування асоціативних масивів в PHP

Як ми бачили раніше, функції sort і rsort не підійдуть, якщо нам потрібно зберегти ключі нашого масиву. На щастя, в PHP є вбудовані функції і для цієї проблеми. Функції називаються asort і arsort. За прикладом вищерозглянутих функцій, asort сортує по зростанню, а arsort – по спадаючій. Крім цього, дані функції підтримують збереження ключів масиву. Отже, давайте подивимося, як ці функції справляються з сортуванням даних в масиві. Повторимо наш тест з використанням нових функцій:

<?php
asort($masuvKolyoriv);
foreach ($masuvKolyoriv as $key => $value) {
  echo '<p>' . $key . ' - ' . $value . '</p>';
}
?>

 

 

Результат буде таким:

night - black
sky - blue
grass - green
apple - red
wall - white

 

 

Тепер результат виглядає набагато краще. Щоб отримати сортування в зворотному порядку, просто використовуйте функцію arsort замість asort.

Але що робити, якщо ви хочете відсортувати асоційовані масиви на основі ключів? Немає проблем, давайте подивимося як це зробити.

 

 

Як сортувати масив по ключу в PHP

Ви вже певно здогадалися, що в PHP є функція сортування асоціативного масиву по ключах. Цими функціями є ksort і krsort. Як і раніше, krsort сортує масив у зворотному порядку. Використання таке ж, як і раніше, тому код буде наступним:

<?php
ksort($masuvKolyoriv);
foreach ($masuvKolyoriv as $key => $value) {
  echo '<p>' . $key . ' - ' . $value . '</p>';
}
?>

 

 

Результат буде таким:

apple - red
grass - green
night - black
sky - blue
wall - white

 

 

Використовувати функцію досить krsort просто.

 

Крім розглянутих функцій в PHP є й інші, більш складні функції сортування:

  • array_multisort – сортування декількох або багатовимірних масивів.
  • natcasesort – сортування масиву з використанням нечутливого до регістру алгоритму «природного порядку»
  • natsort – сортування масиву з використанням алгоритму «природного порядку».
  • uasort – сортує масив за допомогою користувальницької функції порівняння і підтримує зв’язок з індексами.
  • uksort – сортує масив по ключам, використовуючи призначену для користувача функцію порівняння
  • usort – сортує масив за значеннями, використовуючи призначену для користувача функцію порівняння

 

 

Бонусний навик: пошук в масиві за допомогою PHP

Уявіть собі, що у вас є великий масив, який заповнюється з файлу або коду. І ви не знаєте, чи існує дане значення в масиві чи ні. І якщо воно існує, то було б добре отримати ключ цього елемента.

Масив розглянемо той же (що на самому початку статті).

Тепер, якщо ви хочете дізнатися, чи існує значення blue, ви можете використовувати вбудовану в PHP функцію array_search(). Нижче приклад її використання:

<?php
echo 'Blue is ' . array_search("blue", $masuvKolyoriv);
?>

 

В результаті ви отримаєте таке значення:

Blue is sky

 

 

На сьогодні все, дякуємо, що читаєте нас!

 

Recent Posts

Вільям Шекспір

Чужі гріхи судити ви так ретельно любите, почніть з своїх – і до чужих не… Read More

18/04/2021

Що подарувати друзям на річницю весілля

Люди, між якими є любов і взаєморозуміння, скріплюють стосунки й народжують новий союз, а дату… Read More

13/04/2021

Авторитетність домену та його вплив на SEO просування сайту

Для якісного SEO (пошукової оптимізації, розкрутки сайту) одним з важливих показників є Авторитет домену (Domain… Read More

27/03/2021

Як вивести гроші з PayPal – основні способи

З'ясування того, як вивести свої гроші з PayPal, є одним з перших питань, які бентежать… Read More

26/03/2021

Як вибрати спідницю під свою фігуру – основні поради

Спідниця – потужний елемент жіночого гардеробу, завдяки якому будь-який наряд буде виглядати приголомшливо стильно і… Read More

25/03/2021

Основні методи лінкбілдінгу: як отримати якісні зовнішні посилання на сайт

Пошукові системи (наприклад, Google) перевіряють технічні характеристики вашого сайту, такі як швидкість завантаження, зручність навігації,… Read More

24/03/2021