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 ?

Quelles techniques puis-je utiliser pour fusionner des tableaux associatifs et ajouter des colonnes manquantes avec des valeurs par défaut ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-20 21:42:29660parcourir

What Techniques Can I Use to Merge Associative Arrays and Add Missing Columns with Default Values?

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!

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