Loading:


usort()

Sortuje tablicÄ™ wedÅ‚ug wartoÅ›ci korzystajÄ…c ze zdefiniowanej przez użytkownika funkcji porównujÄ…cej.

 

Funkcja ta posortuje tablicÄ™ wedÅ‚ug jej wartoÅ›ci korzystajÄ…c z podanej przez użytkownika funkcji porównujÄ…cej. JeÅ›li chcesz posortować tablicÄ™ wedÅ‚ug skomplikowanych kryteriów, to powinieneÅ› użyć tej funkcji.

 

Funkcja porównujÄ…ca musi zwracać liczbÄ™ caÅ‚kowitÄ… mniejszÄ…, równÄ… lub wiÄ™kszÄ… od zera jeÅ›li pierwszy argument jest odpowiednio mniejszy, równy lub wiÄ™kszy niż drugi.

 

 

Informacja: JeÅ›li wynikiem porównania dwóch elementów tablicy jest równość, ich kolejność w posortowanej tablicy pozostaje niezdefiniowana. Od PHP 4.0.6 funkcje zdefiniowane przez użytkownika mogÅ‚y utrzymywać poczÄ…tkowÄ… kolejność tych elementów, lecz nowy algorytm sortowania wprowadzony w PHP 4.1.0 czyni to uniemożliwym i nie ma wydajnego sposobu na rozwiÄ…zanie tego problemu.

 

Informacja: Ta funkcja przypisuje nowe klucze dla elementów argumentu tablica . Wszystkie istniejÄ…ce klucze zostanÄ… usuniÄ™te.

 

Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.

 

Kompatybilność: PHP4, PHP5.



Napisz Artyku³

Listing

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $val) {
    echo "$key: $value\n";
}
?>

//Powyższy przykład wyświetli:

0: 6
1: 5
2: 3
3: 2
4: 1

//#2 Przykład użycia usort() do sortowania wielowymiarowych tablic
<?php
function cmp($a, $b)
{
    return strcmp($a["owoc"], $b["owoc"]);
}

$owoce[0]["owoc"] = "cytryny";
$owoce[1]["owoc"] = "jabłka";
$owoce[2]["owoc"] = "winogrona";

usort($owoce, "cmp");

while (list($key, $value) = each($owoce)) {
    echo "\$owoce[$key]: " . $value["owoc"] . "\n";
}

//SortujÄ…c tablicÄ™ wielowymiarowÄ…, $a i $b zawierajÄ… referencjÄ™ do pierwszego indeksu tablicy.

//Powyższy przykład wyświetli:

$owoce[0]: cytryny
$owoce[1]: jabłka
$owoce[2]: winogrona

//#3 Przykład użycia usort() używając funkcji składowej obiektu
<?php
class TestObj {
    var $name;

    function TestObj($name)
    {
        $this->name = $name;
    }

    /* Statyczna funkcja porównujÄ…ca */
    function cmp_obj($a, $b)
    {
        $al = strtolower($a->name);
        $bl = strtolower($b->name);
        if ($al == $bl) {
            return 0;
        }
        return ($al > $bl) ? +1 : -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

uasort($a, array("TestObj", "cmp_obj"));

foreach ($a as $item) {
    print $item->name . "\n";
}

//Powyższy przykład wyświetli:

b
c
d




Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38473
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2021 v.1.5 | design: diviXdesign & rainbowcolors