Comment fusionner des tableaux associatifs, gérer les clés manquantes et remplir avec des valeurs par défaut ?

DDD
Libérer: 2024-10-20 21:45:29
original
696 Les gens l'ont consulté

How to Merge Associative Arrays, Handle Missing Keys, and Fill with Default Values?

Fusionner plusieurs tableaux associatifs et ajouter des colonnes manquantes avec une valeur par défaut

Combiner des tableaux associatifs avec différents jeux de clés pour créer un tableau unifié peut être un défi. Cette question explore une méthode pour y parvenir, et le résultat souhaité est un tableau dans lequel les clés sont fusionnées et les colonnes manquantes sont remplies avec une valeur par défaut.

Pour ce faire, il a été suggéré d'utiliser la fonction array_merge conjointement avec un tableau de clés soigneusement conçu :

$keys = array();
foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) {
    $keys[$key] = '';
}
Copier après la connexion

Cette boucle parcourt tous les éléments des tableaux d'entrée, extrayant les clés uniques et leur attribuant des valeurs vides. Le tableau $keys résultant contient toutes les clés possibles qui peuvent exister dans le tableau fusionné final.

Ensuite, chaque tableau d'entrée est fusionné avec le tableau $keys :

$data = array();
foreach($d as $values) {
    $data[] = array_merge($keys, $values);
}
Copier après la connexion

Cette étape garantit que chaque ligne du tableau final contient toutes les clés possibles, toutes les valeurs manquantes étant remplies par une chaîne vide. Le tableau $data résultant est le tableau fusionné et complété souhaité.

Alternativement, un tableau de paires de clés peut être créé et fusionné avec chaque tableau d'entrée :

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

Cette méthode crée essentiellement un carte de toutes les clés possibles vers des valeurs nulles. Chaque tableau d'entrée est ensuite fusionné avec le tableau $key_pair, obtenant le même résultat que l'approche précédente.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal