Cet article présente principalement l'introduction du code source PHP dix-sept : à propos de array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer. 🎜>Une brève discussion sur le code source PHP dix-sept : Introduction à array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc
Ces quatre fonctions appellent la même fonction php_array_diff, la différence réside dans leurs paramètres.
Bien que ces cinq fonctions appellent toutes la même méthode, dans cette méthode, à l'exception du traitement des entrées et de l'opération de libération de la mémoire associée, il n'y a pas beaucoup de partage de programmesEst-ce à cause de la ressemblance sémantique ?
array_diff: php_array_diff(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIFF_NORMAL, DIFF_COMP_DATA_INTERNAL, DIFF_COMP_KEY_INTERNAL); array_diff_ukey: php_array_diff(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIFF_KEY, DIFF_COMP_DATA_INTERNAL, DIFF_COMP_KEY_USER); array_udiff: php_array_diff(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIFF_NORMAL, DIFF_COMP_DATA_USER, DIFF_COMP_KEY_INTERNAL);f array_diff_uassoc: php_array_diff(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIFF_ASSOC, DIFF_COMP_DATA_INTERNAL, DIFF_COMP_KEY_USER); array_udiff_uassoc: php_array_diff(INTERNAL_FUNCTION_PARAM_PASSTHRU, DIFF_ASSOC, DIFF_COMP_DATA_USER, DIFF_COMP_KEY_USER);
Après avoir obtenu la saisie et traité les erreurs associées
Le programme confirme d'abord quelle est la fonction de comparaison. Ici, il existe différentes fonctions de comparaison qui ont également des paramètres d'entrée différents. gestion des erreursEnsuite, les paramètres d'entrée sont copiés et triés selon le diff_key_compare_func obtenu précédemment. L'appel de tri est la fonction zend_qsort
Ensuite, la table de hachage du tableau renvoyé est initialisée et la première copie d'un paramètre dans le tableau de retour.
Enfin parcourez toutes les valeurs du premier paramètre et déterminez si elles ne sont pas dans d'autres paramètres
Pendant le processus de parcours, si une valeur est dans d'autres paramètres, supprimez toutes les valeurs dans le tableau de retour Pour. éléments égaux à cette valeur, si une valeur n'est pas dans d'autres paramètres, sautez
pour que la valeur qui reste soit la valeur qui doit être renvoyée.
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
Une brève discussion du code source PHP 16 : À propos de la fonction array_count_values Un bref discussion du code source PHP 15 : à propos de la fonction array_walk Une brève discussion sur le code source PHP 14 : à propos de la fonction array_combineCe 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!