PHP array_multisort() Funktion

Beispiel

Gibt ein aufsteigend geordnetes Array zurück:

<?php
$a=array("Dog","Cat","Horse","Bear","Zebra");
array_multisort($a);;
print_r($a);
?>

Laufende Beispiele

Definition und Verwendung

Die Funktion array_multisort() gibt eine sortierte Liste zurück. Sie können eine oder mehrere Listen eingeben. Die Funktion sortiert zunächst die erste Liste und dann die anderen Listen. Wenn zwei oder mehrere Werte gleich sind, sortiert sie die nächste Liste.

Kommentar:String-Schlüsselnamen werden beibehalten, aber numerische Schlüsselnamen werden neu indiziert, beginnend bei 0 und inkrementierend um 1.

Kommentar:Sie können nach jedem Array Sortierreihenfolge- und Sortiertyp-Parameter setzen. Wenn nicht gesetzt, wird jeder Array-Parameter mit dem Standardwert verwendet.

Syntax

array_multisort(array1,Sortierreihenfolge,Sortiertyp,array2,array3...)
Parameter Beschreibung
array1 Erforderlich. Definieren Sie das Array.
Sortierreihenfolge

Optional. Definieren Sie die Sortierreihenfolge. Mögliche Werte:

  • SORT_ASC - Standard. Nach aufsteigender Reihenfolge sortieren (A-Z).
  • SORT_DESC - Nach absteigender Reihenfolge sortieren (Z-A).
Sortiertyp

Optional. Definieren Sie den Sortiertyp. Mögliche Werte:

  • SORT_REGULAR - Standard. Sortiert jedes Element in der regulären Reihenfolge (Standard ASCII, ohne Typ zu ändern).
  • SORT_NUMERIC - Jedes Element wird als Zahl behandelt.
  • SORT_STRING - Jedes Element wird als String behandelt.
  • SORT_LOCALE_STRING - Jedes Element wird als String behandelt und basierend auf der aktuellen Regionaleinstellung (durch setlocale() ändern) sortiert.
  • SORT_NATURAL - Jedes Element wird als String behandelt und mit einer natürlichen Sortierung ähnlich wie natsort() sortiert.
  • SORT_FLAG_CASE - Kombinierbar (bitweise oder) mit SORT_STRING oder SORT_NATURAL, um Strings zu sortieren, ohne Groß- und Kleinschreibung zu berücksichtigen.
array2 Optional. Definieren Sie das Array.
array3 Optional. Definieren Sie das Array.

Beschreibung

Die Funktion array_multisort() sortiert mehrere Arrays oder mehrdimensionale Arrays.

Das Array im Parameter wird als eine Tabelle der Spalten und in Zeilen sortiert - dies ähnelt der Funktion von ORDER BY in SQL. Das erste Array ist das zu sortierende Hauptarray. Wenn die Zeilen (Werte) im Array gleich sind, wird nach dem nächsten Eingabearray mit entsprechenden Werten sortiert, und so weiter.

Der erste Parameter ist ein Array, und jeder nachfolgende Parameter kann ein Array sein oder einer der folgenden Sortierreihenfolge-Flags (Sortierreihenfolge-Flags werden verwendet, um die Standardreihenfolge zu ändern):

  • SORT_ASC - Standard. Nach aufsteigender Reihenfolge sortieren. (A-Z)
  • SORT_DESC - Nach absteigender Reihenfolge sortieren. (Z-A)

Nachfolgend können Sie den Sortiertyp angeben:

  • SORT_REGULAR - Standard. Sortiert jedes Element in der regulären Reihenfolge.
  • SORT_NUMERIC - Sortiert jedes Element in numerischer Reihenfolge.
  • SORT_STRING - Jedes Element wird alphabetisch geordnet.

Technische Details

Rückgabewert: Gibt TRUE zurück, wenn erfolgreich, sonst FALSE.
PHP-Version: 4+
Aktualisierungsprotokoll:

Die Sortiertypen SORT_NATURAL und SORT_FLAG_CASE wurden in PHP 5.4 hinzugefügt.

Der Sortiertyp SORT_LOCALE_STRING wurde in PHP 5.3 hinzugefügt.

Mehr Beispiele

Beispiel 1

Gibt ein aufsteigend geordnetes Array zurück:

<?php
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2);;
print_r($a1);
print_r($a2);
?>

Laufende Beispiele

Beispiel 2

Wie wird bei gleichen Werten sortiert:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);;
print_r($a1);
print_r($a2);
?>

Laufende Beispiele

Beispiel 3

Verwendete Sortierparameter:

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);;
print_r($a1);
print_r($a2);
?>

Laufende Beispiele

Beispiel 4

Zwei Arrays zusammenführen und nach numerischer Abstiegsreihenfolge sortieren:

<?php
$a1=array(1,30,15,7,25);
$a2=array(4,30,20,41,66);
$num=array_merge($a1,$a2);
array_multisort($num,SORT_DESC,SORT_NUMERIC);;
print_r($num);
?>

Laufende Beispiele