Функция usort

Функцията usort сортира масив по стойност на елементите, използвайки за това callback функция за определяне на реда на елементите в сортирания масив. Функцията променя самия масив.

Функцията за сравнение трябва да връща цяло число, което в зависимост от резултата от сравнението: по-малко, равно или по-голямо от нула.

Синтаксис

phpusort(array &$array, callable $callback): bool

Пример

Нека сортираме масив във възходящ ред на елементите:

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

Резултат от изпълнението на кода:

php[1, 2, 3, 4, 5]

Пример

А сега нека сортираме масив в низходящ ред на елементите:

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

Резултат от изпълнението на кода:

php[1, 2, 3, 4, 5]

Пример

А сега нека сортираме масив по възходящ брой символи в елементите на масива:

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

Резултат от изпълнението на кода:

php[
  '1',
  '12',
  '123',
  '1234',
  '12345',
]

Вижте също

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