NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

PHP - usort

Třída

Kořen \ Bez třídy

Metoda - usort

(PHP 4, PHP 5, PHP 7)

Funkce seřadí pole podle hodnot na základě uživatelem definované porovnávací funkce.

Poznámka: Funkce odstraní prvkům pole původní klíče a přiřadí jim nové.

Procedurální

  • function usort (array &$array, callable $value_compare_func) : bool
  • function callback () : array

Parametry

NázevDatový typVýchozí hodnotaPopis
&$arrayarray

Pole, které chceme seřadit.

$value_compare_funccallable

Určuje porovnávací funkci. Funkce musí vrátit celé záporné číslo, když je první argument funkce menší než argument druhý, celé kladné číslo pokud je větší nebo nulu pokud jsou stejné.

Návratové hodnoty

Vrací: bool

Vrací true v případě úspěchu, jinak vrací false.

Příklady

V první ukázce seřadíme jména podle jejich délky.

<?php
// Pole, které chceme seřadit:
$jmena = array("Eliška", "Kristýna", "Ema", "Lucie", "Anna", "Barbora");
// Námi definovaná funkce porovnává délku jmen:
function porovnej_delku_jmen($jmeno1, $jmeno2) {
    if (strlen($jmeno1) == strlen($jmeno2)) {
        return 0;
    } else {
        return (strlen($jmeno1) < strlen($jmeno2)) ? -1 : 1;
    }
}
// Seřadíme naše pole pomocí naší funkce:
usort($jmena, "porovnej_delku_jmen");
// Vypíšeme prvky pole:
foreach ($jmena as $jmeno) {
    echo $jmeno . "<br>";
}

V druhé ukázce seřadíme uživatele (asociativní pole) podle jejich příjmení.

<?php
// Asociativní pole, které seřadíme:
$uzivatele = array(
    array("jmeno" => "John", "prijmeni" => "Rambo", "vek" => 30),
    array("jmeno" => "Chuck", "prijmeni" => "Norris", "vek" => 40),
    array("jmeno" => "John", "prijmeni" => "McClane", "vek" => 35),
    array("jmeno" => "Rocky", "prijmeni" => "Balboa", "vek" => 25),
    array("jmeno" => "James", "prijmeni" => "Bond", "vek" => 35),
);
// Funkce využívá vestavěnou porovnávací funkci strnatcmp()
function porovnej_primeni($uzivatel1, $uzivatel2) {
    return strnatcmp($uzivatel1["prijmeni"], $uzivatel2["prijmeni"]);
}
usort($uzivatele, "porovnej_primeni");
foreach ($uzivatele as $uzivatel) {
    print_r($uzivatel);
    echo "<br>";
}

Související manuály

        Aktivity