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!