Maison >développement back-end >tutoriel php >Comment regrouper des sous-tableaux par colonne et générer des valeurs séparées par des virgules à partir d'une autre colonne ?
Regroupement de sous-tableaux par colonne et génération de valeurs séparées par des virgules à partir d'une autre colonne
Introduction
Étant donné un tableau de sous-tableaux à deux colonnes, la tâche consiste à regrouper ces sous-tableaux par un colonne et créez de nouveaux sous-tableaux où les valeurs de l'autre colonne sont séparées par des virgules.
Structure originale :
$array = [ ["444", "0081"], ["449", "0081"], ["451", "0081"], ["455", "2100"], ["469", "2100"] ];
Souhaité Structure :
array ( 0 => array ( 0 => '444,449,451', 1 => '0081', ), 1 => array ( 0 => '455,469', 1 => '2100', ), )
Solution
Une solution élégante peut être obtenue en parcourant le tableau d'origine et en collectant les valeurs dans un tableau temporaire basé sur le regroupement clé. Par la suite, le tableau temporaire est utilisé pour construire la structure souhaitée.
<code class="php">$data = []; $groups = []; foreach($data as $item){ if(!array_key_exists($item[1], $groups)){ $groups[$item[1]] = []; } $groups[$item[1]][] = $item[0]; } $structured = []; foreach($groups as $group => $values){ $structured[] = [implode(',', $values), $group]; }</code>
Cette approche garantit que les sous-tableaux sont regroupés correctement et que les valeurs de l'autre colonne sont combinées sous forme de chaînes séparées par des virgules. Il utilise des fonctions de tableau PHP de base et des boucles foreach pour obtenir le 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!