Dans la programmation PHP, il est souvent nécessaire d'effectuer des opérations de fusion et de différenciation sur les tableaux. array_diff_key () et array_merge () sont deux fonctions très utiles en PHP qui peuvent nous aider à implémenter la fusion différentielle des tableaux. Aujourd'hui, nous allons fouiller dans ces deux fonctions et montrer comment fusionner les différences dans le tableau à travers eux.
array_diff_key () est une clé utilisée pour comparer deux tableaux ou plus et renvoie un tableau contenant différents noms de clés. La syntaxe est la suivante:
array_diff_key(array $array1, array $array2, array ...$arrays): array
Cette fonction renvoie un tableau contenant toutes les clés dans $ array1 , mais exclut les clés qui existent également dans d'autres tableaux.
La fonction array_merge () est utilisée pour fusionner deux tableaux ou plus. Il combine plusieurs nombres dans un nouveau tableau et renvoie le résultat fusionné. La syntaxe de base est la suivante:
array_merge(array ...$arrays): array
Lors de la fusion des tableaux, si plusieurs tableaux ont les mêmes noms de clé, la valeur de tableau suivante écrase la valeur de la même clé dans le tableau précédent.
Supposons que nous ayons deux tableaux: $ array1 et $ array2 , et nous voulons fusionner leurs différences, c'est-à-dire des éléments qui existent dans $ array1 et non dans $ array2 . Nous pouvons calculer la différence par array_diff_key () , puis fusionner la différence en utilisant array_merge () .
Voici un exemple de code qui montre comment implémenter cette fonction:
<?php
// Définir deux tableaux
$array1 = [
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry'
];
$array2 = [
'b' => 'blueberry',
'd' => 'date',
'e' => 'elderberry'
];
// utiliser array_diff_key venez array1 Clés uniques
$diff = array_diff_key($array1, $array2);
// Fusionner la partie de différence
$result = array_merge($diff, $array2);
echo '<pre>';
print_r($result);
echo '</pre>';
?>
Dans cet exemple, nous trouvons d'abord les clés qui existent dans $ array1 mais pas dans $ array2 (c'est-à-dire les clés 'A' et 'C' ) via array_diff_key () . Nous utilisons ensuite Array_merge () pour fusionner ces différences avec $ array2 . Enfin, le résultat du tableau fusionné est sorti.
Après avoir exécuté le code ci-dessus, les résultats de sortie sont les suivants:
Array
(
[a] => apple
[c] => cherry
[b] => blueberry
[d] => date
[e] => elderberry
)
Comme vous pouvez le voir, 'A' => 'Apple' et 'C' => 'Cherry' dans $ array1 sont conservés et les éléments de $ array2 sont fusionnés.
En supposant que vous devez inclure certaines URL dans le tableau et remplacer leurs noms de domaine, nous pouvons simplement utiliser la fonction str_replace () pour remplacer la partie de nom de domaine dans l'URL pendant le processus de fusion. Par exemple: