PHP Manualen
forrige |  | næste

# usort

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

usort -- Sortere et arrays værdier ved brug af en brugerdefineret sammenligningsfunktion.

## Beskrivelse

bool usort ( array &array, callback cmp_function )

Denne funktion vil sortere et arrays værdier ved brug af en brugervalgt sammenligningsfunktion. Hvis arrayet du ønsker at sortere skal sorteres på en ikke ligegyldig måde, skal du bruge denne funktion.

Sammenligningsfunktionen skal returnere enten et tal større end, det samme som eller større end nul, hvis den første argument skal betegnes til at være enten lavere, det samme som, eller større end den anden argument.

> Bemærk: Hvis to værdier bliver bestemt som ens, deres rækkefølge i det sorterede array er udefineret. Up til PHP 4.0.6 vil den brugervalgte funktion bestemme rækkefølge efter den orginale, men med den nye sorteringsalgoritme, som blev indført i 4.1.0, er dette ikke længere tilfældet, da der ikke er nogen løsning til at gøre det på en korrekt måde.

Returnerer `TRUE` ved succes, `FALSE` ved fejl.

Eksempel 1. usort() eksempel

`<?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"); while (list($key, $value) = each($a)) { echo "$key: $value\n"; } ?>`

Ovenstående eksempel vil udskrive:

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

> Bemærk: Det vil dog, i dette ligegyldige eksempel, være bedre at bruge funktionen sort(), som er mere passende.

Eksempel 2. usort() eksempel ved et multi-dimensionel array.

`<?php function cmp($a, $b) { return strcmp($a["fruit"], $b["fruit"]); } $fruits[0]["fruit"] = "lemons"; $fruits[1]["fruit"] = "apples"; $fruits[2]["fruit"] = "grapes"; usort($fruits, "cmp"); while (list($key, $value) = each($fruits)) { echo "\$fruits[$key]: " . $value["fruit"] . "\n"; } ?>`

Ved sortering af multi-dimensionelle array, vil $a og $b indeholde reference til den første nøgle i arrayet.

Ovenstående eksempel vil udskrive:

    $fruits[0]: apples
    $fruits[1]: grapes
    $fruits[2]: lemons

Eksempel 3. usort() eksempel ved brug af en funktion fra et object.

`<?php
class TestObj {
var $name;
function TestObj($name)
{
$this->name = $name;
}
/* Dette er en static sammenligningsfunktion: */
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");
usort($a, array("TestObj", "cmp_obj"));
foreach ($a as $item) {
echo $item->name . "\n";
}
?>`

Ovenstående eksempel vil udskrive:

    b
    c
    d

Se også uasort(), uksort(), sort(), asort(), arsort(),ksort(), natsort() og rsort().

forrige | hjem | næste
uksort | op | Aspell functions [deprecated]