usort függvény

A usort függvény egy tömböt rendez az elemek értéke szerint, ehhez egy callback függvényt használ az elemek sorrendjének meghatározásához a rendezett tömbben. A függvény magát a tömböt módosítja.

Az összehasonlító függvénynek egy egész számot kell visszaadnia, amely az összehasonlítás eredményétől függően: nullánál kisebb, egyenlő vagy nagyobb.

Szintaxis

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

Példa

Rendezzük a tömböt növekvő sorrendbe az elemek szerint:

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

A kód végrehajtásának eredménye:

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

Példa

Most pedig rendezzük a tömböt csökkenő sorrendbe az elemek szerint:

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

A kód végrehajtásának eredménye:

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

Példa

Most pedig rendezzük a tömböt növekvő sorrendbe a karakterek száma alapján a tömb elemeiben:

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

A kód végrehajtásának eredménye:

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

Lásd még

  • a sort függvényt,
    amely növekvő sorrendbe rendezi az elemek szerint
  • a rsort függvényt,
    amely csökkenő sorrendbe rendezi az elemek szerint
  • a ksort függvényt,
    amely növekvő sorrendbe rendezi a kulcsok szerint
  • a krsort függvényt,
    amely csökkenő sorrendbe rendezi a kulcsok szerint
  • a asort függvényt,
    amely növekvő sorrendbe rendezi az elemek szerint kulcsok megtartásával
  • a arsort függvényt,
    amely csökkenő sorrendbe rendezi az elemek szerint kulcsok megtartásával
  • a natsort függvényt,
    amely természetes módon rendezi
  • a natcasesort függvényt,
    amely természetes módon rendezi kis- és nagybetűk megkülönböztetése nélkül
  • a usort függvényt,
    amely callback alapján rendezi
  • a uksort függvényt,
    amely callback alapján rendezi a kulcsok szerint
  • a uasort függvényt,
    amely callback alapján rendezi kulcsok megtartásával
  • a array_multisort függvényt,
    amely több tömböt rendez