Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich 2D-Array-Zeilen in PHP effizient nach einem Spaltenwert gruppieren?

Wie kann ich 2D-Array-Zeilen in PHP effizient nach einem Spaltenwert gruppieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-16 17:19:11992Durchsuche

How Can I Efficiently Group 2D Array Rows by a Column Value in PHP?

2D-Array-Zeilen effektiv nach einem Spaltenwert gruppieren

In diesem Beispiel haben wir ein Szenario, in dem wir ein assoziatives Array gruppieren müssen Arrays basierend auf einem bestimmten Spaltenwert, „id“. Das Ziel besteht darin, diese Aufgabe zu erfüllen, ohne Duplikate einzuführen und gleichzeitig die ursprüngliche Datenstruktur beizubehalten.

Während array_column() und array_unique() die Gruppierung teilweise erreichen können, reicht es nicht aus, Duplikate zu vermeiden, wie unten dargestellt:

function array_group_by_id($array) {
  return array_column($array, null, 'id');
}

$grouped_array = array_group_by_id($data);

Um dieses Problem vollständig zu lösen, können wir einen schleifenbasierten Ansatz verwenden:

$result = array();

foreach ($data as $element) {
  $result[$element['id']][] = $element;
}

Diese Schleife iteriert über die ursprüngliches Array, wobei jedes Element basierend auf seinem „id“-Wert dem entsprechenden Unterarray innerhalb des „Ergebnis“-Arrays hinzugefügt wird. Dadurch entsteht effektiv eine verschachtelte Struktur, in der jedes Unterarray Zeilen aus dem ursprünglichen Array enthält, die dieselbe „ID“ haben.

Das obige ist der detaillierte Inhalt vonWie kann ich 2D-Array-Zeilen in PHP effizient nach einem Spaltenwert gruppieren?. 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