Maison >développement back-end >tutoriel php >Quelles techniques puis-je utiliser pour fusionner des tableaux associatifs et ajouter des colonnes manquantes avec des valeurs par défaut ?
Fusionner des tableaux associatifs et ajouter des colonnes manquantes avec des valeurs par défaut
Fusionner plusieurs tableaux associatifs tout en préservant toutes les clés uniques et en ajoutant des colonnes manquantes avec des valeurs par défaut peut être réalisé en utilisant diverses techniques. Explorons deux méthodes pour y parvenir :
Méthode 1 : Utilisation de array_merge et RecursiveIterationIterator
<code class="php">$a = array('a' => 'some value', 'b' => 'some value', 'c' => 'some value'); $b = array('a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value'); $c = array('b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value'); $d = array($a, $b, $c); $keys = array(); foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) { $keys[$key] = ''; } $data = array(); foreach ($d as $values) { $data[] = array_merge($keys, $values); } echo '<pre class="brush:php;toolbar:false">'; print_r($data);</code>
Cette approche utilise d'abord RecursiveIteratorIterator en conjonction avec array_merge pour identifier toutes les clés uniques. dans chaque tableau associatif. Il initialise ensuite un tableau vide ($keys) avec les clés identifiées. Par la suite, il parcourt chaque tableau de $d, fusionnant le tableau $keys avec les valeurs de chaque tableau pour obtenir le format souhaité.
Méthode 2 : Utilisation de array_combine et array_map
<code class="php">$keys = array_keys(call_user_func_array('array_merge', $d)); $key_pair = array_combine($keys, array_fill(0, count($keys), null)); $values = array_map(function ($e) use ($key_pair) { return array_merge($key_pair, $e); }, $d);</code>
Cette approche utilise array_keys pour déterminer l'union de toutes les clés uniques du tableau fusionné. Il utilise ensuite array_combine pour créer une paire clé-valeur où les clés sont les clés uniques et les valeurs sont nulles. Enfin, array_map est utilisé pour parcourir $d, en fusionnant la paire clé-valeur ($key_pair) avec chaque tableau associatif de $d, ce qui donne le format 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!