ホームページ  >  記事  >  バックエンド開発  >  PHP ソース コード 17 についての簡単な説明: array_diff、array_udiff、array_diff_ukey、array_diff_uassoc、array_udiff_uassoc の概要

PHP ソース コード 17 についての簡単な説明: array_diff、array_udiff、array_diff_ukey、array_diff_uassoc、array_udiff_uassoc の概要

不言
不言オリジナル
2018-06-28 17:34:441468ブラウズ

この記事では主に、array_diff、array_udiff、array_diff_uassoc、array_udiff_uassoc についての PHP ソース コードの概要を紹介します。必要な友人に参照してもらいます。 ## PHP ソース コードの簡単な説明 17: array_diff、array_udiff、array_diff_ukey、array_diff_uassoc、array_udiff_uassoc の概要

これら 4 つの関数は同じ関数 php_array_diff を呼び出します。違いはパラメータです。

これら 5 つの関数はすべて同じメソッドを呼び出しますが、このメソッドでは、入力の処理と関連するメモリの解放の操作を除いて、プログラムの共有はあまりありません。

これはセマンティクスが似ているためですか? ?

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

プログラムの説明:

入力を取得し、関連するエラー処理を実行した後、プログラムは最初にどの比較関数であるかを確認します。ここでは、異なる動作と data_compare_type に異なる値があります。比較関数には、異なる入力パラメーターのエラー処理もあります。

次に、以前に取得した diff_key_compare_func に従って、入力パラメーターがコピーされ、ソートされます。ソート呼び出しは、zend_qsort 関数です。

次に、返された配列のハッシュ テーブルを初期化し、最初にパラメータを戻り配列にコピーします。
最後に、最初のパラメータの値をすべて走査し、それらが他のパラメータに含まれていないかどうかを判断します。
走査プロセス中に、特定の値が他のパラメータに含まれている場合は、削除します。この Value 要素と等しい戻り配列内のすべての値。特定の値が他のパラメータにない場合は、
をスキップして、返される必要のある値が残るようにします。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

PHP ソース コード 16 についての簡単な説明: array_count_values 関数について

# 簡単な説明PHP ソース コード 15: array_walk 関数について

# PHP ソース コード 14: array_combine 関数についての簡単な説明

#

以上がPHP ソース コード 17 についての簡単な説明: array_diff、array_udiff、array_diff_ukey、array_diff_uassoc、array_udiff_uassoc の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。