Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gruppiere ich Subarrays und formatiere Werte nach Spalten in PHP?

Wie gruppiere ich Subarrays und formatiere Werte nach Spalten in PHP?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 09:45:02721Durchsuche

How to Group Subarrays and Format Values by Column in PHP?

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!

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