lima-city: Webhosting, Domains und Cloud
3 Pluspunkte 0 Minuspunkte

Wie kann ich ein multidimensionales Array anhand eines Wertes im Array sortieren? Z.B dieses Array anhand der Werte in "test".

Array
(
    [0] => Array
        (
            [id] => 4231
            [order] => Array
                (
                    [test] => 11
                )

        )

    [1] => Array
        (
            [id] => 15648
            [order] => Array
                (
                    [test] => 14
                )

        )

    [2] => Array
        (
            [id] => 4562
            [order] => Array
                (
                    [test] => 9
                )

        )

)

von  

2 Antworten

3 Pluspunkte 0 Minuspunkte

Die Funktion usort() ermöglicht es, eine Vergleichsfunktion anzugeben, die verwendet wird, um die Elemente im Array zu vergleichen und zu sortieren.

// Benutzerdefinierte Vergleichsfunktion
function compareByTestValue($a, $b) {
    return $a['order']['test'] - $b['order']['test'];
}

// Das Array nach dem Wert in 'test' sortieren
usort($myArray, 'compareByTestValue');

von (397 Punkte)  
2 Pluspunkte 0 Minuspunkte

Mit der Funktion array_multisort().

// Funktion, um Werte zu extrahieren
function extractTestValue($item) {
    return $item['order']['test'];
}

// Extrahiere den 'test'-Wert aus jedem Unterarray
$testValues = array_map('extractTestValue', $myArray);

// Sortiere $myArray anhand der $testValues
array_multisort($testValues, SORT_ASC, $myArray);
von (716 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Beiträge bewerten
  • Inhalte bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft. Unser Ziel: Guter Inhalt. Für alle.

2.3k Fragen

2.8k Antworten

260 Kommentare

12 Nutzer