Subarrays nach Spalte gruppieren, Werte aus anderen Spalten innerhalb von Gruppen formatieren
In einem gegebenen Array, in dem jedes Subarray aus zwei Spalten besteht, ist die Aufgabe besteht darin, die Unterarrays nach der zweiten Spalte zu gruppieren und ein neues Array zu erstellen, in dem jede Gruppe die Werte aus der ersten Spalte mit Kommas verkettet und die zweite Spalte als zweiten Wert enthält.
Zum Beispiel ein Eingabearray wie:
$array = [ ["444", "0081"], ["449", "0081"], ["451", "0081"], ["455", "2100"], ["469", "2100"] ];
sollte umgewandelt werden in:
array ( 0 => array ( 0 => '444,449,451', 1 => '0081', ), 1 => array ( 0 => '455,469', 1 => '2100', ), )
Lösung:
Ein einfacher Ansatz, um dies zu erreichen, ist wie folgt:
<code class="php">// Create an empty array to store the grouped data $groups = []; // Loop through the input array foreach ($array as $item) { // If the second column value is not yet a key in $groups, create an empty array for it if (!array_key_exists($item[1], $groups)) { $groups[$item[1]] = []; } // Add the first column value to the array at the corresponding key $groups[$item[1]][] = $item[0]; } // Initialize the new array with the desired structure $structured = []; // Loop through the groups foreach ($groups as $group => $values) { // Join the first column values with commas and add the group key as the second column $structured[] = [implode(',', $values), $group]; }</code>
Diese Lösung wickelt die Transformation effizient ab und führt zum gewünschten Ergebnis.
Das obige ist der detaillierte Inhalt vonWie gruppiere ich Subarrays und formatiere Werte nach Spalten in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!