Ich brauche hier einen Rat oder empfohlene Praktiken.Vermeiden Sie tiefen Verschachtelungscode in der Gruppierungslogik
Ich habe eine Gruppe mit mehreren Feldern (sechs oder mehr) durch SQL-Abfrage. Ich bekomme die erwarteten Ergebnisse in der richtigen Reihenfolge.
Meine Standardmethode ist das Iterieren über die geordneten Ergebnisse und das Speichern des letzten Schleifenelements, um es bei der nächsten Iteration zu testen. Wenn es sich geändert hat, füge ich es zur resultierenden Liste hinzu und gehe weiter. Ich denke, das ist ein gängiger Weg, um diese Art von Problem zu lösen.
Bis zu zwei Felder die ich denke, mein Ansatz ist in Ordnung. Aber wenn ich mich um mehr als zwei Felder gruppiere, scheint es zu kompliziert. Der Code beginnt zu verfaulen und scheint schwierig zu warten, da die Anzahl der geschachtelten Bedingungen zunimmt.
Gibt es überhaupt einen besseren Weg, dies zu erreichen?
Mein Standardansatz (ein Feld)
$groupOne = null;
$lastId = null;
$result = array();
foreach($orderedData as $item) {
if ($lastId !== $item['id']) {
if ($groupOne !== null) {
$resultList[] = $groupOne;
}
$groupOne = new stdClass();
}
//rest of the logic
$lastId = $item['id'];
}