En programmation, vous pouvez rencontrer le besoin d'organiser les données dans des tableaux multidimensionnels. Pour gérer efficacement des données complexes, il devient indispensable de regrouper les éléments selon des critères précis. Cet article aborde le défi spécifique consistant à regrouper un tableau 2D en fonction des valeurs d'une colonne spécifique, en le transformant en un tableau 3D pour une visualisation et une manipulation améliorées.
Considérez le tableau multidimensionnel suivant contenant des informations client :
<code class="php">$data = [ ['cust' => 'XT8900', 'type' => 'standard', 'level' => 1], ['cust' => 'XT8944', 'type' => 'standard', 'level' => 1], ['cust' => 'XT8922', 'type' => 'premier', 'level' => 3], ['cust' => 'XT8816', 'type' => 'premier', 'level' => 3], ['cust' => 'XT7434', 'type' => 'standard', 'level' => 7], ];</code>
L'objectif est de regrouper ces enregistrements clients en fonction de la colonne « niveau » et de créer un tableau 3D où chaque niveau contient un tableau d'informations client. Le résultat souhaité devrait ressembler à ceci :
<code class="php">$result = [ 1 => [ ['cust' => 'XT8900', 'type' => 'standard'], ['cust' => 'XT8944', 'type' => 'standard'], ], 3 => [ ['cust' => 'XT8922', 'type' => 'premier'], ['cust' => 'XT8816', 'type' => 'premier'], ], 7 => [ ['cust' => 'XT7434', 'type' => 'standard'], ], ];</code>
Il existe plusieurs approches pour y parvenir, mais explorons une solution efficace :
Regroupement des données triées :
Maintenant, parcourez les données triées data et créer un tableau temporaire. Pour chaque entrée, récupérez la valeur « niveau » comme clé et stockez l'intégralité de l'entrée comme valeur. Cela regroupera efficacement les enregistrements client par niveau.
<code class="php">foreach ($data as $key => &$entry) { $level_arr[$entry['level']][$key] = $entry; }</code>
Le $level_arr résultant aura la structure souhaitée, chaque niveau contenant un tableau d'informations client.
Conversion en un tableau 3D :
Maintenant, convertissez le $level_arr temporaire en tableau 3D cible. Cela implique de définir les clés du tableau 3D sur les valeurs de niveau et les valeurs sur les tableaux client correspondants à partir de $level_arr.
<code class="php">$result = []; foreach ($level_arr as $level => $customer_data) { $result[$level] = array_values($customer_data); }</code>
En suivant ces étapes, vous pouvez regrouper efficacement les données dans un tableau 2D en utilisant une valeur de colonne spécifique et construire un Tableau 3D pour une manipulation et une visualisation améliorées des données. Cette approche offre flexibilité et efficacité lorsqu'il s'agit de structures de données complexes.
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!