Maison  >  Article  >  développement back-end  >  Comment regrouper des sous-tableaux et formater les valeurs par colonne en PHP ?

Comment regrouper des sous-tableaux et formater les valeurs par colonne en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 09:45:02721parcourir

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

Regrouper les sous-tableaux par colonne, formater les valeurs d'une autre colonne au sein des groupes

Dans un tableau donné où chaque sous-tableau se compose de deux colonnes, la tâche consiste à regrouper les sous-tableaux par la deuxième colonne et à créer un nouveau tableau où chaque groupe a les valeurs de la première colonne concaténées avec des virgules et la deuxième colonne comme deuxième valeur.

Par exemple, un tableau d'entrée comme :

$array = [
    ["444", "0081"],
    ["449", "0081"],
    ["451", "0081"],
    ["455", "2100"],
    ["469", "2100"]
];

doit être transformé en :

array (
  0 => 
  array (
    0 => '444,449,451',
    1 => '0081',
  ),
  1 => 
  array (
    0 => '455,469',
    1 => '2100',
  ),
)

Solution :

Une approche simple pour y parvenir est la suivante :

<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>

Cette solution gère la transformation efficacement, aboutissant au résultat souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn