Funkcia usort

Funkcia usort triedi pole podľa hodnoty prvkov, pričom na určenie poradia prvkov v zotriedenom poli používa callback. Funkcia mení samotné pole.

Porovnávacia funkcia musí vrátiť celé číslo, ktoré v závislosti od výsledku porovnania: menšie, rovné alebo väčšie ako nula.

Syntax

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

Príklad

Zoraďme pole vzostupne prvkov:

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);
?>

Výsledok vykonania kódu:

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

Príklad

A teraz zoraďme pole zostupne prvkov:

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);
?>

Výsledok vykonania kódu:

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

Príklad

A teraz zoraďme pole vzostupne podľa počtu znakov v prvkoch poľa:

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);
?>

Výsledok vykonania kódu:

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

Pozrite si tiež

  • funkciu sort,
    ktorá triedi vzostupne podľa prvkov
  • funkciu rsort,
    ktorá triedi zostupne podľa prvkov
  • funkciu ksort,
    ktorá triedi vzostupne podľa kľúčov
  • funkciu krsort,
    ktorá triedi zostupne podľa kľúčov
  • funkciu asort,
    ktorá triedi vzostupne podľa prvkov so zachovaním kľúčov
  • funkciu arsort,
    ktorá triedi zostupne podľa prvkov so zachovaním kľúčov
  • funkciu natsort,
    ktorá triedi prirodzeným spôsobom
  • funkciu natcasesort,
    ktorá triedi prirodzeným spôsobom bez ohľadu na veľkosť písmen
  • funkciu usort,
    ktorá triedi podľa callbacku
  • funkciu uksort,
    ktorá triedi podľa callbacku podľa kľúčov
  • funkciu uasort,
    ktorá triedi podľa callbacku so zachovaním kľúčov
  • funkciu array_multisort,
    ktorá triedi viacero polí