Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich in PHP assoziative Array-Zeilen nach einem bestimmten Spaltenwert gruppieren und dabei die ursprünglichen Schlüssel der ersten Ebene beibehalten?

Wie kann ich in PHP assoziative Array-Zeilen nach einem bestimmten Spaltenwert gruppieren und dabei die ursprünglichen Schlüssel der ersten Ebene beibehalten?

DDD
DDDOriginal
2024-10-30 14:07:50867Durchsuche

How can I group associative array rows by a specific column value in PHP while preserving the original first-level keys?

Assoziative Array-Zeilen nach Spaltenwert gruppieren

Bei einem assoziativen Array aus assoziativen Arrays besteht eine häufige Aufgabe darin, sie nach einer bestimmten Spalte zu gruppieren Wert unter Beibehaltung der ursprünglichen Schlüssel der ersten Ebene. Betrachten Sie das folgende Eingabearray:

[
    'a' => ['id' => 20, 'name' => 'chimpanzee'],
    'b' => ['id' => 40, 'name' => 'meeting'],
    'c' => ['id' => 20, 'name' => 'dynasty'],
    'd' => ['id' => 50, 'name' => 'chocolate'],
    'e' => ['id' => 10, 'name' => 'bananas'],
    'f' => ['id' => 50, 'name' => 'fantasy'],
    'g' => ['id' => 50, 'name' => 'football']
]

Unser Ziel ist es, diese Unterarrays basierend auf dem ID-Wert zu gruppieren:

array
(
    10 => array
        (
            e => array ( id = 10, name = bananas )
        )
    20 => array
        (
            a => array ( id = 20, name = chimpanzee )
            c => array ( id = 20, name = dynasty )
        )
    40 => array
        (
            b => array ( id = 40, name = meeting )
        )
    50 => array
        (
            d => array ( id = 50, name = chocolate )
            f => array ( id = 50, name = fantasy )
            g => array ( id = 50, name = football )
        )
)

Um dies mit PHP zu erreichen, können wir den folgenden Code verwenden:

$arr = array();

foreach ($old_arr as $key => $item) {
   $arr[$item['id']][$key] = $item;
}

ksort($arr, SORT_NUMERIC);

Dieser Code durchläuft zunächst das ursprüngliche Array und extrahiert die ID und das entsprechende Unterarray. Anschließend speichert es dieses Subarray im neuen Array unter dem ID-Schlüssel und behält den ursprünglichen Schlüssel der ersten Ebene bei. Schließlich wird das neue Array numerisch nach ID sortiert.

Das obige ist der detaillierte Inhalt vonWie kann ich in PHP assoziative Array-Zeilen nach einem bestimmten Spaltenwert gruppieren und dabei die ursprünglichen Schlüssel der ersten Ebene beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn