usort ֆունկցիա

usort ֆունկցիան դասավորում է զանգված ըստ էլեմենտների արժեքների, օգտագործելով դրա համար կոլբեք՝ դասավորված զանգվածում էլեմենտների հերթականությունը որոշելու համար: Ֆունկցիան փոխում է հենց զանգվածը:

Համեմատման ֆունկցիան պետք է վերադարձնի ամբողջ թիվ, որը կախված համեմատության արդյունքից՝ փոքր է, հավասար կամ մեծ է զրոյից:

Սինտաքս

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

Օրինակ

Եկեք դասավորենք զանգվածը ըստ աճման էլեմենտների:

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

Կոդի կատարման արդյունք:

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

Օրինակ

Իսկ հիմա դասավորենք զանգվածը ըստ նվազման էլեմենտների:

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

Կոդի կատարման արդյունք:

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

Օրինակ

Իսկ հիմա դասավորենք զանգվածը ըստ աճման նիշերի քանակի զանգվածի էլեմենտներում:

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

Կոդի կատարման արդյունք:

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

Տես նաև

  • sort ֆունկցիան,
    որը դասավորում է ըստ աճման էլեմենտների
  • rsort ֆունկցիան,
    որը դասավորում է ըստ նվազման էլեմենտների
  • ksort ֆունկցիան,
    որը դասավորում է ըստ աճման բանալիների
  • krsort ֆունկցիան,
    որը դասավորում է ըստ նվազման բանալիների
  • asort ֆունկցիան,
    որը դասավորում է ըստ աճման էլեմենտների՝ պահպանելով բանալիները
  • arsort ֆունկցիան,
    որը դասավորում է ըստ նվազման էլեմենտների՝ պահպանելով բանալիները
  • natsort ֆունկցիան,
    որը դասավորում է բնական կերպով
  • natcasesort ֆունկցիան,
    որը դասավորում է բնական կերպով՝ առանց ռեգիստրի
  • usort ֆունկցիան,
    որը դասավորում է ըստ կոլբեքի
  • uksort ֆունկցիան,
    որը դասավորում է ըստ կոլբեքի՝ ըստ բանալիների
  • uasort ֆունկցիան,
    որը դասավորում է ըստ կոլբեքի՝ պահպանելով բանալիները
  • array_multisort ֆունկցիան,
    որը դասավորում է մի քանի զանգվածներ