Heim  >  Artikel  >  Backend-Entwicklung  >  So ändern Sie die Sortierregeln in PHP

So ändern Sie die Sortierregeln in PHP

PHPz
PHPzOriginal
2023-04-11 09:10:58497Durchsuche

PHP ist eine weit verbreitete serverseitige Skriptsprache, die hauptsächlich für die Webentwicklung verwendet wird. Während der Entwicklung müssen Sie manchmal ein Array oder Objekt sortieren und wissen, wie Sie die Sortierregeln ändern.

PHP bietet einige Standardsortierfunktionen wie sort(), rsort(), asort(), arsort(), ksort(), krsort() usw. Diese Funktionen verwenden standardmäßig eine aufsteigende Reihenfolge und stellen keine Parameter zum direkten Ändern der Sortierregel bereit.

Wenn wir die Sortierregeln ändern müssen, können wir dazu die Funktionen usort() und uasort() in PHP verwenden. Mit der Funktion usort() kann ein Array in aufsteigender oder absteigender Reihenfolge sortiert werden, während mit uasort() ein assoziatives Array nach festgelegten Regeln sortiert wird.

Nehmen wir die Funktion usort() als Beispiel, um vorzustellen, wie die PHP-Sortierregeln geändert werden.

Zuerst müssen wir eine Vergleichsfunktion definieren, mit der die Größen zweier Elemente im Array verglichen werden. Der Rückgabewert ist ein ganzzahliger Typ. Wenn der Rückgabewert kleiner als 0 ist, bedeutet dies, dass der erste Parameter kleiner als der zweite Parameter ist. Wenn der Rückgabewert größer als 0 ist, bedeutet dies, dass der erste Parameter kleiner ist als der zweite Parameter ist größer als der zweite Parameter und der erste Parameter wird vor dem zweiten Parameter platziert. Wenn der Rückgabewert gleich 0 ist, bedeutet dies, dass die beiden Parameter gleich sind und die Reihenfolge bleibt unverändert.

Zum Beispiel definieren wir die folgende Vergleichsfunktion, um nach String-Länge zu sortieren:

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

Als nächstes können wir die Funktion usort() zum Sortieren verwenden. Die Funktion usort() akzeptiert zwei Parameter, der erste Parameter ist das zu sortierende Array und der zweite Parameter ist die zum Vergleich verwendete Vergleichsfunktion. Zum Beispiel definieren wir das folgende Array:

$arr = array("apple", "orange", "banana", "kiwi", "pear");

Dann verwenden wir die Funktion usort() zum Sortieren:

usort($arr, "cmp");

Hier wird das Array nach der Stringlänge sortiert und das Endergebnis ist:

Array
(
    [0] => kiwi
    [1] => pear
    [2] => apple
    [3] => orange
    [4] => banana
)

Wie Sie sehen können, Das Array wird nach der Stringlänge sortiert. Nach groß sortieren.

Es ist zu beachten, dass die Vergleichsfunktion bestimmte Anforderungen erfüllen muss. Zunächst muss es zwei Parameter akzeptieren und einen ganzzahligen Wert zurückgeben. Zweitens muss die Vergleichsfunktion transitiv sein, d. h. wenn $a kleiner als $b und $b kleiner als $c ist, dann muss $a kleiner als $c sein. Schließlich können Vergleichsfunktionen die Werte von $a und $b nicht ändern.

Wenn wir die Funktion usort() zum Sortieren verwenden, können wir auch anonyme Funktionen zum Definieren von Vergleichsfunktionen verwenden, was beim Definieren von Funktionen Zeit und Energie sparen kann. Zum Beispiel:

usort($arr, function($a, $b) {
    if (strlen($a) == strlen($b)) {
        return 0;
    }
    return (strlen($a) < strlen($b)) ? -1 : 1;
});

Kurz gesagt, das Ändern der Sortierung in PHP ist sehr einfach, Sie müssen lediglich eine Vergleichsfunktion definieren. Die Sortierung kann erfolgen, indem der Funktionsname als zweiter Parameter der Funktion usort() verwendet wird. Natürlich können wir auch anonyme Funktionen verwenden, um den Code zu vereinfachen.

Das obige ist der detaillierte Inhalt vonSo ändern Sie die Sortierregeln in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn