Wie man in PHP ein Array assoziativer Arrays nach dem Wert eines gegebenen Schlüssels sortiert

Minahil Noor 30 Januar 2023
  1. Verwenden Sie die Funktion array_multisort(), um ein Array von assoziativen Arrays nach dem Wert eines gegebenen Schlüssels in PHP zu sortieren
  2. Verwenden Sie die Funktion usort(), um ein Array von assoziativen Arrays nach dem Wert eines gegebenen Schlüssels in PHP zu sortieren
Wie man in PHP ein Array assoziativer Arrays nach dem Wert eines gegebenen Schlüssels sortiert

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