Inhaltsverzeichnis
uasort()函数
Heim Backend-Entwicklung PHP-Problem So sortieren Sie Elemente in einem Array in PHP

So sortieren Sie Elemente in einem Array in PHP

Apr 18, 2023 pm 03:23 PM

In PHP können Sie zum Sortieren zweidimensionaler Arrays die integrierten Funktionen usort() und uasort() verwenden, um dies zu erreichen. Beide Funktionen können Elemente in einem Array sortieren, die Implementierung unterscheidet sich jedoch geringfügig. usort()uasort()来实现。这两个函数都可以对数组中的元素进行排序,但具体实现方式略有不同。

usort()函数会在原数组上排序并返回布尔值,而uasort()函数则会对原数组进行排序,但保留键值对之间的关联,亦即不新建索引数组。下面我们将分别介绍这两个函数的使用方法。

usort()函数

usort()函数的第一个参数是需要排序的数组,第二个参数是一个比较函数,其实现方式是通过在需要排序的数组中交换元素位置并返回布尔值实现。

//示例数组$students
$students = array(
    array("name" => "张三", "age" => 22),
    array("name" => "李四", "age" => 20),
    array("name" => "王五", "age" => 25)
);

//比较函数cmp
function cmp($a, $b){
    if ($a["age"] == $b["age"]) {
        return 0;
    }
    return ($a["age"] < $b["age"]) ? -1 : 1;
}

//使用usort()排序
usort($students, "cmp");

//输出结果
var_dump($students);
Nach dem Login kopieren

上面的代码中,我们首先定义了一个包含三个元素的2维数组$students,每个元素都包含"name"和"age"两个键值对。

接下来,我们定义了一个比较函数cmp,该函数通过比较两个元素在"age"键值对上的值,决定元素之间的相对顺序。 如果两个元素的"age"相等,则返回0;如果$a的"age"小于$b的"age",则返回-1,表示$a在$b的前面;否则返回1,表示$a在$b的后面。

最后,我们使用usort()函数对数组$students按照cmp函数定义的规则进行排序。输出结果可以看到数组中的元素已经按照"age"键值对从小到大排序了。

uasort()函数

uasort()函数的实现方式与usort()类似,但不同的是保留了键值对之间的关联,不新建索引数组。因此,它需要一个更复杂的比较函数,既要比较元素大小,也需要保持键值对的关联关系。

//示例数组$students
$students = array(
    "stu1" => array("name" => "张三", "age" => 22),
    "stu2" => array("name" => "李四", "age" => 20),
    "stu3" => array("name" => "王五", "age" => 25)
);

//比较函数cmp
function cmp($a, $b){
    if ($a["age"] == $b["age"]) {
        return 0;
    }
    return ($a["age"] < $b["age"]) ? -1 : 1;
}

//使用usort()排序
uasort($students, "cmp");

//输出结果
var_dump($students);
Nach dem Login kopieren

上面的代码中,我们首先定义了一个包含三个元素的2维关联数组$students,每个元素都包含"name"和"age"两个键值对。区别在于,这里我们用字符串"stu1"、"stu2"和"stu3"作为了数组的键值,而不是前面的数字索引。

定义比较函数cmp的方式与usort()相同。不同的地方是,我们在调用uasort()函数时,传递了数组$students和比较函数cmp作为参数。该函数会根据cmp规则对数组进行排序,排序的结果保留了原有的联合键值关系。

最后,我们通过var_dump()函数输出排序结果。可以看到,输出的结果依旧是一个关联数组,但元素已经按照"age"键值对从小到大排序。

除了usort()uasort()以外,PHP还提供了一系列其他的数组排序函数,例如asort()arsort()ksort()krsort()

Die Funktion usort() sortiert das ursprüngliche Array und gibt einen booleschen Wert zurück, während die Funktion uasort() das ursprüngliche Array sortiert. aber Die Zuordnung zwischen Schlüssel-Wert-Paaren bleibt erhalten, das heißt, es wird kein neues Indexarray erstellt. Im Folgenden stellen wir vor, wie diese beiden Funktionen jeweils verwendet werden. #🎜🎜#

usort()Funktion

#🎜🎜#usort()Der erste Parameter der Funktion ist das Array, das sortiert werden muss und der zweite Der erste Parameter ist eine Vergleichsfunktion, die durch den Austausch der Elementpositionen im zu sortierenden Array und die Rückgabe eines booleschen Werts implementiert wird. #🎜🎜#rrreee#🎜🎜#Im obigen Code definieren wir zunächst ein zweidimensionales Array $students mit drei Elementen. Jedes Element enthält zwei Schlüssel-Wert-Paare „Name“ und „Alter“. #🎜🎜##🎜🎜#Als nächstes definieren wir eine Vergleichsfunktion cmp, die die relative Beziehung zwischen den Elementen bestimmt, indem sie die Werte der beiden Elemente auf dem Schlüsselwert „Alter“ vergleicht Paarreihenfolge. Wenn das „Alter“ der beiden Elemente gleich ist, wird 0 zurückgegeben. Wenn das „Alter“ von $a kleiner als das „Alter“ von $b ist, wird -1 zurückgegeben, was angibt, dass $a vor $ steht b; andernfalls wird 1 zurückgegeben, was darauf hinweist, dass $a Nach $b. #🎜🎜##🎜🎜#Schließlich verwenden wir die Funktion usort(), um das Array $students gemäß den durch die Funktion cmp definierten Regeln zu sortieren. Anhand der Ausgabe können Sie erkennen, dass die Elemente im Array entsprechend dem Schlüssel-Wert-Paar „Alter“ von klein nach groß sortiert wurden. #🎜🎜#

uasort()function

#🎜🎜#uasort()Die Implementierung der Funktion ist die gleiche wie usort( )Ähnlich, aber der Unterschied besteht darin, dass die Zuordnung zwischen Schlüssel-Wert-Paaren beibehalten wird und kein neues Indexarray erstellt wird. Daher ist eine komplexere Vergleichsfunktion erforderlich, die nicht nur die Elementgrößen vergleicht, sondern auch die Zuordnung von Schlüssel-Wert-Paaren aufrechterhält. #🎜🎜#rrreee#🎜🎜#Im obigen Code definieren wir zunächst ein zweidimensionales assoziatives Array $students mit drei Elementen. Jedes Element enthält zwei Schlüssel-Wert-Paare „Name“ und „Alter“. Der Unterschied besteht darin, dass wir hier die Zeichenfolgen „stu1“, „stu2“ und „stu3“ als Schlüsselwerte des Arrays anstelle des vorherigen numerischen Index verwenden. #🎜🎜##🎜🎜#Die Art und Weise, die Vergleichsfunktion cmp zu definieren, ist die gleiche wie bei usort(). Der Unterschied besteht darin, dass wir beim Aufruf der Funktion uasort() das Array $students und die Vergleichsfunktion cmp als Parameter übergeben. Diese Funktion sortiert das Array gemäß den cmp-Regeln und das sortierte Ergebnis behält die ursprüngliche gemeinsame Schlüssel-Wert-Beziehung bei. #🎜🎜##🎜🎜#Abschließend geben wir die Sortierergebnisse über die Funktion var_dump() aus. Wie Sie sehen können, ist das Ausgabeergebnis immer noch ein assoziatives Array, aber die Elemente wurden entsprechend dem Schlüssel-Wert-Paar „Alter“ von klein nach groß sortiert. #🎜🎜##🎜🎜#Zusätzlich zu usort() und uasort() bietet PHP auch eine Reihe weiterer Array-Sortierfunktionen, wie zum Beispiel asort ( ), arsort(), ksort(), krsort() usw. Entwickler können entsprechend auswählen tatsächliche Bedürfnisse. #🎜🎜#

Das obige ist der detaillierte Inhalt vonSo sortieren Sie Elemente in einem Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die besten Praktiken für die Deduplizierung von PHP -Arrays Was sind die besten Praktiken für die Deduplizierung von PHP -Arrays Mar 03, 2025 pm 04:41 PM

In diesem Artikel wird die effiziente PHP -Array -Deduplizierung untersucht. Es vergleicht integrierte Funktionen wie Array_unique () mit benutzerdefinierten Hashmap-Ansätzen, wobei die Leistungsabschreibungen auf der Grundlage von Array-Größe und Datentyp hervorgehoben werden. Die optimale Methode hängt von Profili ab

Kann PHP Array -Deduplizierung die Einzigartigkeit der Schlüsselnamen nutzen? Kann PHP Array -Deduplizierung die Einzigartigkeit der Schlüsselnamen nutzen? Mar 03, 2025 pm 04:51 PM

In diesem Artikel werden die PHP -Array -Deduplizierung unter Verwendung der Einzigartigkeit der Schlüsselkompetenz untersucht. Während keine direkte doppelte Entfernungsmethode ist, ermöglicht die Hebelung der Einzigartigkeit von Schlüssel ein neues Array mit eindeutigen Werten durch Zuordnen von Werten zu Tasten und überschreiben Duplikate. Dieser AP

Muss die PHP -Array -Deduplizierung für Leistungsverluste in Betracht gezogen werden? Muss die PHP -Array -Deduplizierung für Leistungsverluste in Betracht gezogen werden? Mar 03, 2025 pm 04:47 PM

Dieser Artikel analysiert die PHP -Array -Deduplizierung und zeigt Leistungs Engpässe von naiven Ansätzen (O (N²)). Es untersucht effiziente Alternativen unter Verwendung von Array_unique () mit benutzerdefinierten Funktionen, SPOBPECTSPORAGE- und Hashset -Implementierungen, Erreichen

Wie implementieren Sie Nachrichtenwarteschlangen (Rabbitmq, Redis) in PHP? Wie implementieren Sie Nachrichtenwarteschlangen (Rabbitmq, Redis) in PHP? Mar 10, 2025 pm 06:15 PM

In diesem Artikel werden die Nachrichtenwarteschlangen in PHP unter Verwendung von Rabbitmq und Redis implementiert. Es vergleicht ihre Architekturen (AMQP vs. In-Memory), Merkmale und Zuverlässigkeitsmechanismen (Bestätigungen, Transaktionen, Persistenz). Best Practices für Design, Fehler

Was sind die neuesten PHP -Codierungsstandards und Best Practices? Was sind die neuesten PHP -Codierungsstandards und Best Practices? Mar 10, 2025 pm 06:16 PM

In diesem Artikel werden aktuelle PHP-Codierungsstandards und Best Practices untersucht und sich auf PSR-Empfehlungen (PSR-1, PSR-2, PSR-4, PSR-12) konzentrieren. Es betont die Verbesserung der Code -Lesbarkeit und -wartbarkeit durch konsistentes Styling, sinnvolles Namen und EFF

Was sind die Optimierungstechniken für die Deduplizierung von PHP -Arrays Was sind die Optimierungstechniken für die Deduplizierung von PHP -Arrays Mar 03, 2025 pm 04:50 PM

In diesem Artikel wird die Optimierung der PHP -Array -Deduplizierung für große Datensätze untersucht. Es untersucht Techniken wie Array_unique (), Array_flip (), SplobjectStorage und Pre-Sorting, verglichen ihre Effizienz. Für massive Datensätze schlägt dies vor, die Datenbank zu spielen, Datenbank

Wie arbeite ich mit PHP -Erweiterungen und PECL? Wie arbeite ich mit PHP -Erweiterungen und PECL? Mar 10, 2025 pm 06:12 PM

In diesem Artikel wird die Installation und Fehlerbehebung von PHP -Erweiterungen in der Installation und Fehlerbehebung beschrieben und sich auf PECL konzentriert. Es deckt Installationsschritte (Feststellung, Herunterladen/Kompilieren, Aktivieren, Neustarten des Servers), Fehlerbehebungstechniken (Überprüfung von Protokollen, Überprüfung der Installation, Fehlerbehebungstechniken

Wie kann man Reflection verwenden, um den PHP -Code zu analysieren und zu manipulieren? Wie kann man Reflection verwenden, um den PHP -Code zu analysieren und zu manipulieren? Mar 10, 2025 pm 06:12 PM

In diesem Artikel werden die Reflexions -API von PHP erläutert und die Laufzeitinspektion und Manipulation von Klassen, Methoden und Eigenschaften ermöglicht. Es beschreibt gemeinsame Anwendungsfälle (Dokumentationserzeugung, ORMs, Abhängigkeitsinjektion) und Vorsichtsmaßnahmen gegen Leistungsüberhitzungen

See all articles