"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2024-11-02
Parcourir:638

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 s'avérer difficile. 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 possède toutes les clés possibles, toutes les valeurs manquantes étant remplies avec 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 une 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.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729431856. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3