Функция uasort

Функция uasort сортирует массив по возрастанию элементов, сохраняя ключи ассоциативного массива.

Функция uasort сортирует массив по значению элементов, используя для этого коллбэк для определения порядка элементов в отсортированном массиве. Функция изменяет сам массив.

Функция сравнения должна возвращать целое число, которое в зависимости от результата сравнения: меньше, равно или больше нуля.

Функция изменяет сам массив.

Синтаксис

phpuasort(array &$array, int $flags = SORT_REGULAR): bool

Пример

Давайте отсортируем массив по возрастанию элементов:

php<?php
  $arr = [
    'b' => 1,
    'e' => 3,
    'c' => 2,
    'a' => 5,
    'd' => 4,
  ];
  
  function func($a, $b)
  {
    if ($a === $b) {
      return 0;
    } else if ($a < $b) {
      return -1;
    } else {
      return 1;
    }
  }
  
  uasort($arr, 'func');
  var_dump($arr);
?>

Результат выполнения кода:

php[
  'b' => 1,
  'c' => 2,
  'e' => 3,
  'd' => 4,
  'a' => 5,
]

Пример

А теперь отсортируем массив по возрастанию количества символов в элементах массива:

php<?php
  $arr = [
    'a' => '123',
    'b' => '1',
    'c' => '12345',
    'd' => '12',
    'e' => '1234',
  ];
  
  function func($a, $b)
  {
    if (strlen($a) === strlen($b)) {
      return 0;
    } else if (strlen($a) < strlen($b)) {
      return -1;
    } else {
      return 1;
    }
  }
  
  uasort($arr, 'func');
  var_dump($arr);
?>

Результат выполнения кода:

php[
  'b' => '1',
  'd' => '12',
  'a' => '123',
  'e' => '1234',
  'c' => '12345',
]

Смотрите также

  • функцию sort,
    которая сортирует по возрастанию элементов
  • функцию rsort,
    которая сортирует по убыванию элементов
  • функцию ksort,
    которая сортирует по возрастанию ключей
  • функцию krsort,
    которая сортирует по убыванию ключей
  • функцию asort,
    которая сортирует по возрастанию элементов с сохранением ключей
  • функцию arsort,
    которая сортирует по убыванию элементов с сохранением ключей
  • функцию natsort,
    которая сортирует натуральным образом
  • функцию natcasesort,
    которая сортирует натуральным образом без регистра
  • функцию usort,
    которая сортирует по коллбэку
  • функцию uksort,
    которая сортирует по коллбэку по ключам
  • функцию uasort,
    которая сортирует по коллбэку с сохранением ключей
  • функцию array_multisort,
    которая сортирует несколько массивов