„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie gruppiere ich assoziative Arrays nach Spaltenwert und behalte dabei die Schlüssel in PHP bei?

Wie gruppiere ich assoziative Arrays nach Spaltenwert und behalte dabei die Schlüssel in PHP bei?

Veröffentlicht am 06.11.2024
Durchsuche:467

How to Group Associative Arrays by Column Value While Preserving Keys in PHP?

Gruppieren assoziativer Arrays nach Spaltenwert unter Beibehaltung von Schlüsseln

Betrachten Sie ein Array assoziativer Arrays, die jeweils eine Entität mit Attributen wie „id“ darstellen. und „Name“. Die Herausforderung besteht darin, diese Arrays basierend auf einer bestimmten Spalte, „id“, zu gruppieren und dabei die ursprünglichen Schlüssel beizubehalten.

Um dies zu erreichen, können wir die foreach-Schleife von PHP verwenden, um über das Array zu iterieren. Für jedes innere Array extrahieren wir den „id“-Wert und verwenden ihn als Index eines neuen assoziativen Arrays. Innerhalb dieses neuen Arrays weisen wir den ursprünglichen Schlüssel als Index und das innere Array als Wert zu.

$arr = array();

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

Schließlich verwenden wir ksort(), um das resultierende Array numerisch zu sortieren und sicherzustellen, dass die Gruppen in aufsteigender Reihenfolge von „id“ dargestellt werden.

ksort($arr, SORT_NUMERIC);

Die Ausgabe ist ein Array, in dem jedes Element eine Gruppe von Entitäten mit demselben „id“-Wert darstellt, während die ursprünglichen Schlüssel innerhalb jeder Gruppe erhalten bleiben.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3