Wie man in PHP ein Array assoziativer Arrays nach dem Wert eines gegebenen Schlüssels sortiert
-
Verwenden Sie die Funktion
array_multisort()
, um ein Array von assoziativen Arrays nach dem Wert eines gegebenen Schlüssels in PHP zu sortieren -
Verwenden Sie die Funktion
usort()
, um ein Array von assoziativen Arrays nach dem Wert eines gegebenen Schlüssels in PHP zu sortieren
Dieser Artikel stellt Methoden vor, um ein “Array” von assoziativen Arrays nach dem Wert eines gegebenen Schlüssels in PHP zu sortieren.
- Verwendung der
array_multisort()
Funktion - Verwendung der Funktion
usort()
Verwenden Sie die Funktion array_multisort()
, um ein Array von assoziativen Arrays nach dem Wert eines gegebenen Schlüssels in PHP zu sortieren
Wir können die eingebaute Funktion array_multisort()
verwenden, um ein Array
von assoziativen Arrays nach dem Wert eines gegebenen Schlüssels zu sortieren. Sie kann viele Arrays auf einmal oder ein mehrdimensionales Array
sortieren. Die korrekte Syntax zur Verwendung dieser Funktion lautet wie folgt
str_replace($arrayName, $sort_order, $sort_flags);
Die eingebaute Funktion array_multisort()
hat drei Parameter. Die Einzelheiten ihrer Parameter sind wie folgt
Parameter | Beschreibung | |
---|---|---|
$arrayName |
obligatorisch | Es ist das Array , das wir sortieren wollen. |
$sort_order |
optional | Es sagt etwas über die Reihenfolge aus, in der wir unser Array sortieren werden. Es kann SORT_ASC für aufsteigende Reihenfolge und SORT_DESC für absteigende Reihenfolge sein. Sein Standardwert ist SORT_ASC . |
$sort_flags |
optional | Sie informiert über die Möglichkeiten der Sortierung. Sie können es hier lesen. |
Diese Funktion gibt TRUE zurück, wenn sie erfolgreich ist. Andernfalls gibt sie FALSE zurück.
Das Programm unten zeigt, wie wir die Funktion array_multisort()
verwenden können, um ein Array von assoziativen Arrays nach dem Wert eines gegebenen Schlüssels zu sortieren.
<?php
$result = array(
array("firstname"=>"Olivia", "marks"=>85),
array("firstname"=>"Jacob", "marks"=>60),
array("firstname"=>"Henry", "marks"=>100),
array("firstname"=>"Lili", "marks"=>40),
array("firstname"=>"Stefan", "marks"=>5),
array("firstname"=>"Bonnie", "marks"=>97),
);
$marks = array();
foreach ($result as $key => $row)
{
$marks[$key] = $row['marks'];
}
array_multisort($marks, SORT_DESC, $result);
print_r($result);
?>
Wir haben ein Array $marks
erstellt, das die Marken aus dem ursprünglichen Array
enthält. Danach haben wir die Funktion array_multisort()
benutzt, um das Array $marks
basierend auf dem Array $result
zu sortieren. Die Ausgabe ist das sortierte $result
Array.
Die Ausgabe:
Array
(
[0] => Array
(
[firstname] => Henry
[marks] => 100
)
[1] => Array
(
[firstname] => Bonnie
[marks] => 97
)
[2] => Array
(
[firstname] => Olivia
[marks] => 85
)
[3] => Array
(
[firstname] => Jacob
[marks] => 60
)
[4] => Array
(
[firstname] => Lili
[marks] => 40
)
[5] => Array
(
[firstname] => Stefan
[marks] => 5
)
)
Das Array
wird in absteigender Reihenfolge nach dem Wert des marks-Schlüssels sortiert.
Verwenden Sie die Funktion usort()
, um ein Array von assoziativen Arrays nach dem Wert eines gegebenen Schlüssels in PHP zu sortieren
In PHP können wir auch die Funktion usort()
verwenden, um ein Array
von assoziativen Arrays nach dem Wert eines gegebenen Schlüssels zu sortieren. Diese Funktion sortiert das Array
unter Verwendung einer benutzerdefinierten Funktion. Die korrekte Syntax zur Verwendung dieser Funktion lautet wie folgt:
preg_replace($arrayName, $functionName);
Die Funktion usort()
akzeptiert zwei Parameter. Die Einzelheiten ihrer Parameter sind wie folgt
Parameter | Beschreibung | |
---|---|---|
$arrayName |
obligatorisch | Es ist die Array , die wir sortieren wollen |
$functionName |
obligatorisch | Es ist die benutzerdefinierte Funktion, die das übergebene Array sortiert. |
Sie gibt bei Erfolg TRUE zurück, andernfalls FALSE. Das Programm, das das Array sortiert, ist wie folgt:
<?php
function DescSort($item1,$item2)
{
if ($item1['marks'] == $item2['marks']) return 0;
return ($item1['marks'] < $item2['marks']) ? 1 : -1;
}
$result = array(
array("firstname"=>"Olivia", "marks"=>85),
array("firstname"=>"Jacob", "marks"=>60),
array("firstname"=>"Henry", "marks"=>100),
array("firstname"=>"Lili", "marks"=>40),
array("firstname"=>"Stefan", "marks"=>5),
array("firstname"=>"Bonnie", "marks"=>97),
);
usort($result,'DescSort');
print_r($result);
?>
Ausgabe:
Array
(
[0] => Array
(
[firstname] => Henry
[marks] => 100
)
[1] => Array
(
[firstname] => Bonnie
[marks] => 97
)
[2] => Array
(
[firstname] => Olivia
[marks] => 85
)
[3] => Array
(
[firstname] => Jacob
[marks] => 60
)
[4] => Array
(
[firstname] => Lili
[marks] => 40
)
[5] => Array
(
[firstname] => Stefan
[marks] => 5
)
)
Bei aufsteigender Sortierung wird die Funktion
<?php
function AscSort($item1,$item2)
{
if ($item1['marks'] == $item2['marks']) return 0;
return ($item1['marks'] > $item2['marks']) ? 1 : -1;
}
$result = array(
array("firstname"=>"Olivia", "marks"=>85),
array("firstname"=>"Jacob", "marks"=>60),
array("firstname"=>"Henry", "marks"=>100),
array("firstname"=>"Lili", "marks"=>40),
array("firstname"=>"Stefan", "marks"=>5),
array("firstname"=>"Bonnie", "marks"=>97),
);
usort($result,'AscSort');
print_r($result);
?>
Ausgabe:
Array
(
[0] => Array
(
[firstname] => Stefan
[marks] => 5
)
[1] => Array
(
[firstname] => Lili
[marks] => 40
)
[2] => Array
(
[firstname] => Jacob
[marks] => 60
)
[3] => Array
(
[firstname] => Olivia
[marks] => 85
)
[4] => Array
(
[firstname] => Bonnie
[marks] => 97
)
[5] => Array
(
[firstname] => Henry
[marks] => 100
)
)
Verwandter Artikel - PHP Array
- Wie man die erste und letzte Iteration in einer foreach-Schleife in PHP bestimmt
- Wie man in PHP ein Array in eine Zeichenkette konvertiert
- Wie man das erste Element eines Arrays in PHP erhält
- Wie Sie ein Array in PHP echoen oder drucken
- Wie löscht man ein Element aus einem Array in PHP
- Wie man leere Array-Elemente in PHP entfernt