function usort W3TEITZ2XVVJUWRPEQYCZA5WYZ6RGSFPTYJ5I2Q


usortPodręcznik PHPPoprzedniNastępnyusort (PHP 3>= 3.0.3, PHP 4 >= 4.0.0)usort --  Sortuj tablicę według wartości korzystając ze zdefiniowanej przez użytkownika funkcji porównującej Opisvoid usort (array tablica, string funkcja_por) 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. Jeśli dwa elementy tablicy są równe, to ich kolejność występowania w posortowanej tablicy pozostaje niezdefiniowany. Istenieje także możliwość użycia funkcji składowej obiektu jako funkcji porównującej. Zobacz przykład nr 3 poniżej. Przykład 1. Przykład użycia usort()function cmp ($a, $b) { if ($a == $b) return 0; return ($a > $b) ? -1 : 1; } $a = array (3, 2, 5, 6, 1); usort ($a, "cmp"); while (list ($key, $value) = each ($a)) { echo "$key: $value\n"; } Powyższy przykład wyświetli: 0: 6 1: 5 2: 3 3: 2 4: 1 Notatka: Oczywiście w prostszych przypadkach lepiej jest skorzystać z funkcji rsort(). Przykład 2. Przykład użycia usort() do sortowania wielowymiarowych tablic function cmp ($a, $b) { return strcmp($a["owoc"], $b["owoc"]); } $owocs[0]["owoc"] = "cytryny"; $owocs[1]["owoc"] = "jabłka"; $owocs[2]["owoc"] = "winogrona"; usort($owocs, "cmp"); while (list ($key, $value) = each ($owocs)) { echo "\$owocs[$key]: " . $value["owoc"] . "\n"; } Sortując tablicę wielowymiarową, $a i $b zawierają referencję do pierwszego indeksu tablicy. Ten przykład wyświetli: $fruits[0]: cytryny $fruits[1]: jabłka $fruits[2]: winogrona Przykład 3. Przykład użycia usort() używając funkcji składowej obiektu 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"; } Ten przykład wyświetli: b c d Ostrzeżenie Używana do sortowania funkcja quicksort w niektórych bibliotekach C (jak na przykład na systemach Solaris) może spowodować zawieszanie się PHP jeśli funkcja porównująca zwraca niespójne wartości. Patrz także uasort(), uksort(), sort(), asort(), arsort(),ksort(), natsort() i rsort(). PoprzedniSpis treściNastępnyuksortPoczątek rozdziałuFunkcje Aspell [przestarzałe]

Wyszukiwarka

Podobne podstrony:
function usort
function usort
function fdf next field name
function ccvs void
function mysql error
function mcal event set end
function mcrypt cbc
Functional Origins of Religious Concepts Ontological and Strategic Selection in Evolved Minds
function domnode get content
function mcrypt module get algo key size
function pdf execute image

więcej podobnych podstron