Funktio usort

Funktio usort lajittelee taulukon alkioiden arvojen mukaan käyttäen tähän callback-funktiota määrittämään alkioiden järjestyksen lajitellussa taulukossa. Funktio muuttaa itse taulukon.

Vertailufunktion tulee palauttaa kokonaisluku, joka riippuen vertailun tuloksesta: pienempi kuin nolla, yhtä suuri kuin nolla tai suurempi kuin nolla.

Syntaksi

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

Esimerkki

Lajitellaan taulukko alkioiden nousevaan järjestykseen:

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

Koodin suorituksen tulos:

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

Esimerkki

Lajitellaan nyt taulukko alkioiden laskevaan järjestykseen:

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

Koodin suorituksen tulos:

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

Esimerkki

Lajitellaan nyt taulukko alkioiden merkkien määrän nousevaan järjestykseen:

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

Koodin suorituksen tulos:

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

Katso myös

  • funktion sort,
    joka lajittelee alkioiden nousevaan järjestykseen
  • funktion rsort,
    joka lajittelee alkioiden laskevaan järjestykseen
  • funktion ksort,
    joka lajittelee avainten nousevaan järjestykseen
  • funktion krsort,
    joka lajittelee avainten laskevaan järjestykseen
  • funktion asort,
    joka lajittelee alkioiden nousevaan järjestykseen säilyttäen avaimet
  • funktion arsort,
    joka lajittelee alkioiden laskevaan järjestykseen säilyttäen avaimet
  • funktion natsort,
    joka lajittelee luonnollisella tavalla
  • funktion natcasesort,
    joka lajittelee luonnollisella tavalla kirjainkoosta riippumatta
  • funktion usort,
    joka lajittelee callback-funktion perusteella
  • funktion uksort,
    joka lajittelee callback-funktion perusteella avainten mukaan
  • funktion uasort,
    joka lajittelee callback-funktion perusteella säilyttäen avaimet
  • funktion array_multisort,
    joka lajittelee useita taulukoita