Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

array_multisort

Array-Funktionen

    Befehl:
bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $...]]] )

bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )


    Parameter-Liste:
NameBeschreibung
arrEin zu sortierendes array.
argOptional ein weiteres array, oder Sortieroptionen für das vorherige array-Argument:SORT_ASC, SORT_DESC, SORT_REGULAR, SORT_NUMERIC, SORT_STRING.
...Weitere Parameter (arg).
NameBeschreibung ab Version 5.3.0
array1Ein zu sortierendes array.
array1_sort_orderDie Reihenfolge verwendet, um die vorherige Array Argument zu sortieren. Entweder SORT_ASC um aufsteigend oder absteigend sortieren, um SORT_DESC sortieren.

Dieses Argument kann mit array1_sort_flags vertauscht werden oder ganz entfallen, in welchem Fall SORT_ASC angenommen.
array1_sort_flagsSortieroptionen für die vorherige Array-Argument:

Flags für Sortiertypen:
  • SORT_REGULAR - Elemente normal (nicht Typen zu ändern)
  • SORT_NUMERIC - vergleiche Items numerisch
  • SORT_STRING - Artikel miteinander vergleichen als Strings
  • SORT_LOCALE_STRING - Artikel miteinander vergleichen als Zeichenfolgen, basierend auf dem aktuellen Gebietsschema. Es nutzt die Ländereinstellung, die mit setlocale() geändert werden können.
  • SORT_NATURAL - Artikel vergleichen als Strings mit "natürlichen Ordnung" wie natsort().
  • SORT_FLAG_CASE - können kombiniert werden (bitweise OR) mit SORT_STRING oder SORT_NATURAL in Strings ohne Berücksichtigung der Gross-/Kleinschreibung sortieren.
Dieses Argument kann mit array1_sort_order vertauscht werden oder ganz entfallen, in welchem Fall SORT_REGULAR angenommen.
...Mehr Arrays, dieg egebenenfalls durch Sortierung und Fahnen gefolgt.

    Rückgabewerte:
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

    Beschreibung:
Die Funktion array_multisort() sortiert mehrere Arrays oder ein multidimensionales Array auf einmal. Dabei werden die angegebenen Arrays als Spalten einer Tabelle (wie bei einer Datenbank) betrachtet.

Das erste Argument (ar1) muss ein Array sein. Alle nachfolgenden Argumente können entweder ein Array oder ein Sortierflag sein.


Flags für Sortierreihenfolge:

• SORT_ASC – Sortiert in aufsteigender Reihenfolge
• SORT_DESC – Sortiert in absteigender Reihenfolge

Flags für Sortiertypen:

• SORT_REGULAR – Vergleicht die Felder normal
• SORT_NUMERIC – Vergleicht die Felder numerisch
• SORT_STRING – Vergleicht Felder als Strings

Jedes Flag ist nur für das vorhergehende Array gültig und wird danach wieder auf die Standartwerte SORT_DESC und SORT_REGULAR zurückgesetzt.


    Aktiv in Version:
(PHP 4, PHP 5, PHP 7)

    Siehe auch:
•  usort()
Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion
 

array_multisort() - Beispiel: Sortieren mehrerer Arrays


Eingabe:
In diesem Beispiel enthält das erste Array nach dem Sortieren 0, 10, 100, 100. Das zweite Array wird 4, 1, 2, 3 enthalten. Die Einträge des zweiten Arrays, welche den identischen Einträgen des ersten Arrays entsprechen (100 und 100), wurden ebenfalls sortiert.


<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>


Ausgabe:
array(4) {
  [0]=> int(0)
  [1]=> int(10)
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(4)
  [1]=> int(1)
  [2]=> int(2)
  [3]=> int(3)
}

Beschreibung:
In diesem Beispiel enth�lt das erste Array nach dem Sortieren 0, 10, 100, 100. Das zweite Array wird 4, 1, 2, 3 enthalten. Die Eintr�ge des zweiten Arrays, welche den identischen Eintr�gen des ersten Arrays entsprechen (100 und 100), wurden ebenfalls sortiert.

Beschreibung:
Version Beschreibung
5.4.0 Die SORT_NATURAL und SORT_FLAG_CASE wurden hinzugefügt, um möglichst Art Fahnen array1_sort_flags.
5.3.0 Die SORT_LOCALE_STRING wurde hinzugefügt, um möglichst Art Fahnen array1_sort_flags.
array_multisort() - Beispiel 2: Sortieren eines mehrdimensionalen Arrays


Eingabe:
In diesem Beispiel wird sich das erste Array nach der Sortierung in "10", 100, 100, 11, "a" ändern (es wurde als Strings in aufsteigender Reihenfolge sortiert). Das zweite wird 1, 3, "2", 2, 1 enthalten (sortiert als Zahlen in absteigender Reihe).

<?php
$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>


Ausgabe:
array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}

Beschreibung:
In diesem Beispiel wird sich das erste Array nach der Sortierung in "10", 100, 100, 11, "a" �ndern (es wurde als Strings in aufsteigender Reihenfolge sortiert). Das zweite wird 1, 3, "2", 2, 1 enthalten (sortiert als Zahlen in absteigender Reihe).

Beschreibung:
Version Beschreibung
5.4.0 Die SORT_NATURAL und SORT_FLAG_CASE wurden hinzugefügt, um möglichst Art Fahnen array1_sort_flags.
5.3.0 Die SORT_LOCALE_STRING wurde hinzugefügt, um möglichst Art Fahnen array1_sort_flags.
array_multisort() - Beispiel 3: Gross-/Kleinschreibung nicht-beachtende Sortierung


Eingabe:
Um eine Suche durchzuführen, die die Gross-/Kleinschreibung nicht beachtet, muss man erzwingen, dass die Sortierreihenfolge von einer Kopie des Originalarrays in Kleinschreibung festgelegt wird.

<?php
$array = array('Alpha', 'atomar', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array);
?>


Ausgabe:
Array
(
    [0] => Alpha
    [1] => atomar
    [2] => bank
    [3] => Beta
)

Beschreibung:
Sowohl SORT_STRING als auch SORT_REGULAR beachten die Gross/Kleinschreibung, weshalb Strings, welche mit grossem Buchstaben beginnen, vor Strings einsortiert werden, die mit kleinem Buchstaben anfangen.


Um eine Suche durchzuf�hren, die die Gross-/Kleinschreibung nicht beachtet, muss man erzwingen, dass die Sortierreihenfolge von einer Kopie des Originalarrays in Kleinschreibung festgelegt wird.

Beschreibung:
Version Beschreibung
5.4.0 Die SORT_NATURAL und SORT_FLAG_CASE wurden hinzugefügt, um möglichst Art Fahnen array1_sort_flags.
5.3.0 Die SORT_LOCALE_STRING wurde hinzugefügt, um möglichst Art Fahnen array1_sort_flags.
Array-Funktionen