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
Libérer: 2024-10-20 21:42:29
original
659 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal