usort funksiýasy

usort funksiýasy massiw elementleriň bahasy boýunça tertipleýär, tertiplenen massiwdäki elementleriň tertibini kesgitlemek üçin kolbek ulanýar. Funksiýa massiwiň özüni üýtgedýär.

Salyşdyrma funksiýasy salyşdyryş netijesine baglylykda: noldan kiçi, deň ýa-da uly boljak bitin san gaýtarmaly.

Sintaksis

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

Mysal

Geliň, massiw elementlerini köpelýän tertipde tertipleýälim:

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

Kody ýerine ýetirip netijesi:

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

Mysal

Indi bolsa, massiw elementlerini peselýän tertipde tertipleýälim:

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

Kody ýerine ýetirip netijesi:

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

Mysal

Indi bolsa, massiw elementlerini massiw elementlerindäki nyşanlaryň sany boýunça köpelýän tertipde tertipleýälim:

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

Kody ýerine ýetirip netijesi:

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

Şeýle-de görüň

  • sort funksiýasyny,
    elementleri köpelýän tertipde tertipleýän
  • rsort funksiýasyny,
    elementleri peselýän tertipde tertipleýän
  • ksort funksiýasyny,
    açarlary köpelýän tertipde tertipleýän
  • krsort funksiýasyny,
    açarlary peselýän tertipde tertipleýän
  • asort funksiýasyny,
    açarlary saklap, elementleri köpelýän tertipde tertipleýän
  • arsort funksiýasyny,
    açarlary saklap, elementleri peselýän tertipde tertipleýän
  • natsort funksiýasyny,
    tebigy usul bilen tertipleýän
  • natcasesort funksiýasyny,
    registri hasaba almazdan, tebigy usul bilen tertipleýän
  • usort funksiýasyny,
    kolbek boýunça tertipleýän
  • uksort funksiýasyny,
    açarlar boýunça kolbek arkaly tertipleýän
  • uasort funksiýasyny,
    açarlary saklap, kolbek arkaly tertipleýän
  • array_multisort funksiýasyny,
    birnäçe massiwleri tertipleýän