Maison  >  Article  >  développement back-end  >  Comment fusionner des tableaux associatifs, gérer les clés manquantes et remplir avec des valeurs par défaut ?

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

DDD
DDDoriginal
2024-10-20 21:45:29609parcourir

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] = '';
}

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);
}

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);

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!

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