Dans PHP, array_diff_uassoc () est une fonction qui compare les tableaux, qui peuvent comparer deux tableaux ou plus et renvoyer la partie de différence basée sur des règles de comparaison de valeur clé personnalisées. Cette fonction est très utile dans les scénarios où des structures de données complexes ou des comparaisons sont nécessaires en fonction des clés.
array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
Description du paramètre :
Array1 : Le premier tableau qui doit être comparé.
Array2 : le deuxième tableau qui doit être comparé, qui peut être plusieurs tableaux.
key_compare_func : une fonction de rappel qui compare les clés à un tableau et doit renvoyer un entier. La valeur de retour détermine l'ordre des valeurs de clé: si vous renvoyez un nombre négatif, cela signifie que la première touche est plus petite que la deuxième touche; Si vous retournez un zéro, cela signifie que les deux clés sont égales; Si vous renvoyez un nombre positif, cela signifie que la première clé est plus grande que la deuxième clé.
Valeur de retour : cette fonction renvoie un tableau contenant différents éléments, c'est-à-dire des éléments qui existent dans le premier tableau mais pas dans le deuxième tableau, et la comparaison est basée sur des règles de valeur clé personnalisées.
Supposons que nous ayons deux tableaux, $ array1 et $ array2 , nous voulons découvrir les parties des deux tableaux avec des clés différentes.
<?php
// Définir deux tableaux
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3
];
$array2 = [
"a" => 1,
"b" => 2,
"d" => 4
];
// Fonction de comparaison de clés personnalisée
function custom_key_compare($key1, $key2) {
return strcmp($key1, $key2); // utiliser strcmp Clé de comparaison
}
// utiliser array_diff_uassoc Comparez les tableaux
$result = array_diff_uassoc($array1, $array2, 'custom_key_compare');
// Résultat de sortie
print_r($result);
?>
Sortir :
Array
(
[c] => 3
)
Dans cet exemple, nous définissons deux tableaux $ array1 et $ array2 . $ array1 contient les clés "A" , "B" et "C" , tandis que $ array2 contient les clés "A" , "B" et "D" . Lorsque vous utilisez la fonction array_diff_uassoc () , la fonction CUSTAUX_KEY_COMPARE () est utilisée pour comparer les clés d'un tableau. Dans cet exemple, la valeur 3 correspondant à la clé "C" est retournée car elle existe dans $ array1 , mais ne peut être trouvée dans $ array2 .
La fonction array_diff_uassoc () compare non seulement les valeurs, mais se compare également sur les règles personnalisées des clés. Si vous n'avez pas besoin d'une règle de comparaison de clés personnalisée, vous pouvez utiliser array_diff_assoc () .
Si la fonction de rappel compare les clés de manière déraisonnable, cela peut conduire à des résultats incorrects, en particulier lorsqu'il existe des éléments de tableau de nombreux ou complexes.
Cette fonction ne modifie pas le tableau d'origine, il renvoie un nouveau tableau.
array_diff_uassoc () est couramment utilisé dans les scénarios suivants:
Comparez deux tableaux avec la même clé mais des valeurs différentes.
Lorsque vous devez comparer les règles en fonction des clés personnalisées, découvrez la différence entre les deux tableaux.
Utilisé pour le traitement des données, l'analyse ou la déduplication, en particulier lorsque des paires de valeurs clés complexes sont impliquées.
Si nous devons impliquer des opérations d'URL dans notre code et que nous souhaitons remplacer le nom de domaine dans l'URL par m66.net , nous pouvons nous référer au code suivant:
<?php
// Définir un contenu URL Tableau de
$urls = [
"https://www.example.com/page1",
"https://www.example.com/page2",
"https://www.example.com/page3"
];
// utiliser array_map et remplacement régulier URL Nom de domaine dans
$updatedUrls = array_map(function($url) {
return preg_replace('/https:\/\/www\..+\.com/', 'https://m66.net', $url);
}, $urls);
// Sortir le résultat après le remplacement
print_r($updatedUrls);
?>
Sortir :