Funkcija usort

Funkcija usort razvrsti polje po vrednosti elementov, pri čemer uporabi povratni klic za določitev vrstnega reda elementov v razvrščenem polju. Funkcija spremeni samo polje.

Funkcija za primerjavo mora vrniti celo število, ki je glede na rezultat primerjave: manjše, enako ali večje od nič.

Sintaksa

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

Primer

Razvrstimo polje po naraščajočem vrstnem redu elementov:

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

Rezultat izvajanja kode:

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

Primer

Zdaj pa razvrstimo polje po padajočem vrstnem redu elementov:

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

Rezultat izvajanja kode:

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

Primer

Zdaj pa razvrstimo polje po naraščajočem številu znakov v elementih polja:

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

Rezultat izvajanja kode:

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

Glejte tudi

  • funkcijo sort,
    ki razvrsti po naraščajočem vrstnem redu elementov
  • funkcijo rsort,
    ki razvrsti po padajočem vrstnem redu elementov
  • funkcijo ksort,
    ki razvrsti po naraščajočem vrstnem redu ključev
  • funkcijo krsort,
    ki razvrsti po padajočem vrstnem redu ključev
  • funkcijo asort,
    ki razvrsti po naraščajočem vrstnem redu elementov s ohranjanjem ključev
  • funkcijo arsort,
    ki razvrsti po padajočem vrstnem redu elementov s ohranjanjem ključev
  • funkcijo natsort,
    ki razvrsti na naraven način
  • funkcijo natcasesort,
    ki razvrsti na naraven način brez upoštevanja velikosti črk
  • funkcijo usort,
    ki razvrsti s pomočjo povratnega klica
  • funkcijo uksort,
    ki razvrsti s pomočjo povratnega klica po ključih
  • funkcijo uasort,
    ki razvrsti s pomočjo povratnega klica z ohranjanjem ključev
  • funkcijo array_multisort,
    ki razvrsti več polj