Функција usort

Функција usort сортира низ по вредности елемената, користећи за то колбек за дефинисање реда елемената у сортираном низу. Функција мења сам низ.

Функција за поређење мора да враћа цео број, који у зависности од резултата поређења: мање, једнако или веће од нуле.

Синтакса

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[5, 4, 3, 2, 1]

Пример

А сада да сортирамо низ по растућем броју карактера у елементима низа:

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,
    која сортира преко колбека
  • функцију uksort,
    која сортира преко колбека по кључевима
  • функцију uasort,
    која сортира преко колбека са очувањем кључева
  • функцију array_multisort,
    која сортира више низова