Funkce usort

Funkce usort řadí pole podle hodnot prvků, přičemž pro určení pořadí prvků v seřazeném poli používá callback. Funkce mění samotné pole.

Porovnávací funkce musí vracet celé číslo, které v závislosti na výsledku porovnání: menší, rovno nebo větší než nula.

Syntaxe

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

Příklad

Seřaďme pole vzestupně prvků:

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ýsledek provedení kódu:

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

Příklad

A nyní seřaďme pole sestupně prvků:

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ýsledek provedení kódu:

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

Příklad

A nyní seřaďme pole vzestupně podle počtu znaků v prvcích pole:

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ýsledek provedení kódu:

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

Viz také

  • funkci sort,
    která řadí vzestupně podle prvků
  • funkci rsort,
    která řadí sestupně podle prvků
  • funkci ksort,
    která řadí vzestupně podle klíčů
  • funkci krsort,
    která řadí sestupně podle klíčů
  • funkci asort,
    která řadí vzestupně podle prvků se zachováním klíčů
  • funkci arsort,
    která řadí sestupně podle prvků se zachováním klíčů
  • funkci natsort,
    která řadí přirozeným způsobem
  • funkci natcasesort,
    která řadí přirozeným způsobem bez ohledu na velikost písmen
  • funkci usort,
    která řadí pomocí callbacku
  • funkci uksort,
    která řadí pomocí callbacku podle klíčů
  • funkci uasort,
    která řadí pomocí callbacku se zachováním klíčů
  • funkci array_multisort,
    která řadí více polí