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
Freigeben: 2024-10-30 14:07:50
Original
798 Leute haben es durchsucht

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']
]
Nach dem Login kopieren

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 )
        )
)
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!