I Shar

I Shar

мир глазами веб-разработчика

Сортируем массив по ключам

как отсортировать массив по ключам с помощью PHP

I Shar

время чтения 2 мин.

Photo by Annie Spratt on Unsplash

Если коротко, отсортировать массив по ключам в PHP можно с помощью нативной функции ksort(), которая доступна в различных версиях PHP (4, 5, 7). Функция сортирует массив по ключам, сохраняя отношения между ключами и значениями.

ksort() принимает два параметра:

  1. обязательный параметр - собственно массив, который должен быть отсортирован,
  2. необязательный параметр - флаг сортировки (значение по умолчанию: SORT_REGULAR - обычное сравнение элементов).

На примере ассоциативного массива `$arFoods мы рассмотрим, как работает данная функция.

Итак, у нас есть исходный ассоциативный массив:

$arFoods = ["Bacon" => 9, "Tomatoes" => 6, "Milk" => 1, "Pasta" => 2, "Eggs" => 20, "Potato" => 17, "Broccoli" => 1, "Biscuits" => 20, "Chocolate" => 2];
var_dump($arFoods);

Вывод неотсортированного массива с помощью var_dump() выглядит так:

array(9) { ["Bacon"]=> int(9) ["Tomatoes"]=> int(6) ["Milk"]=> int(1) ["Pasta"]=> int(2) ["Eggs"]=> int(20) ["Potato"]=> int(17) ["Broccoli"]=> int(1) ["Biscuits"]=> int(20) ["Chocolate"]=> int(2) }

Применим сортировку по ключам:

ksort($arFoods);
var_dump($arFoods);

Вывод отсортированного массива будет таким:

["Bacon"]=> int(9) ["Biscuits"]=> int(20) ["Broccoli"]=> int(1) ["Chocolate"]=> int(2) ["Eggs"]=> int(20) ["Milk"]=> int(1) ["Pasta"]=> int(2) ["Potato"]=> int(17) ["Tomatoes"]=> int(6) }Copy

Как было отмечено выше, функция ksort() принимает два аргумента, одним из которых является необязательный флаг сортировки. В нашем примере второй аргумент опущен.

Сам список возможных флагом сортировки приведен ниже:

  1. SORT_REGULAR - обычное сравнение элементов (флаг сортировки по умолчанию),
  2. SORT_NUMERIC - числовое сравнение элементов,
  3. SORT_STRING - строковое сравнение элементов,
  4. SORT_LOCALE_STRING - сравнивает элементы как строки с учетом текущей локали,
  5. SORT_NATURAL - сравнение элементов как строк, используя естественное упорядочение,
  6. SORT_FLAG_CASE - может быть объединен (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для сортировки строк без учета регистра.

Спасибо за внимание.

    • backend
    • php

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.