Funcția usort

Funcția usort sortează o matrice după valoarea elementelor, folosind pentru aceasta un callback pentru a determina ordinea elementelor în matricea sortată. Funcția modifică însăși matricea.

Funcția de comparare trebuie să returneze un număr întreg, care în funcție de rezultatul comparației: mai mic, egal sau mai mare decât zero.

Sintaxă

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

Exemplu

Haideți să sortăm matricea în ordine crescătoare a elementelor:

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

Rezultatul executării codului:

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

Exemplu

Iar acum să sortăm matricea în ordine descrescătoare a elementelor:

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

Rezultatul executării codului:

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

Exemplu

Iar acum să sortăm matricea în ordinea crescătoare a numărului de caractere din elementele matricei:

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

Rezultatul executării codului:

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

Vedeți și

  • funcția sort,
    care sortează în ordine crescătoare a elementelor
  • funcția rsort,
    care sortează în ordine descrescătoare a elementelor
  • funcția ksort,
    care sortează în ordine crescătoare a cheilor
  • funcția krsort,
    care sortează în ordine descrescătoare a cheilor
  • funcția asort,
    care sortează în ordine crescătoare a elementelor cu păstrarea cheilor
  • funcția arsort,
    care sortează în ordine descrescătoare a elementelor cu păstrarea cheilor
  • funcția natsort,
    care sortează în mod natural
  • funcția natcasesort,
    care sortează în mod natural fără a ține cont de majuscule/minuscule
  • funcția usort,
    care sortează după callback
  • funcția uksort,
    care sortează după callback după chei
  • funcția uasort,
    care sortează după callback cu păstrarea cheilor
  • funcția array_multisort,
    care sortează mai multe matrice