Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Diskussion des PHP-Quellcodes siebzehn: Einführung in array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc

Eine kurze Diskussion des PHP-Quellcodes siebzehn: Einführung in array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc

不言
不言Original
2018-06-28 17:34:441537Durchsuche

Dieser Artikel stellt hauptsächlich die Einführung von PHP-Quellcode siebzehn vor: über array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc. Jetzt kann ich ihn mit Ihnen teilen

Eine kurze Diskussion über PHP-Quellcode siebzehn: Einführung in array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc

Diese vier Funktionen rufen dieselbe Funktion php_array_diff auf, der Unterschied liegt in ihren Parametern.
Obwohl diese fünf Funktionen alle dieselbe Methode aufrufen, gibt es bei dieser Methode mit Ausnahme der Eingabeverarbeitung und der Freigabe des zugehörigen Speichers nicht viel gemeinsame Nutzung von Programmen.
Liegt das an der Ähnlichkeit?

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

Programmbeschreibung:

Nach Erhalt der Eingabe und Durchführung der zugehörigen Fehlerbehandlung
Das Programm bestätigt zunächst, um welche Vergleichsfunktion es sich handelt. Hier gibt es unterschiedliche Werte für unterschiedliche Verhaltensweisen und data_compare_type Die Vergleichsfunktion verfügt auch über eine unterschiedliche Fehlerbehandlung für Eingabeparameter
Dann werden die Eingabeparameter entsprechend der zuvor erhaltenen diff_key_compare_func kopiert und sortiert. Der Sortieraufruf ist die zend_qsort-Funktion
Dann wird die Hash-Tabelle des zurückgegebenen Arrays initialisiert und die Kopieren Sie zuerst die Parameter in das Rückgabearray.
Durchlaufen Sie abschließend alle Werte des ersten Parameters und stellen Sie fest, ob sie nicht in anderen Parametern enthalten sind.
Wenn sich während des Durchlaufvorgangs ein bestimmter Wert in anderen Parametern befindet, löschen Sie ihn Alle Werte im Rückgabearray, die diesem Wertelement entsprechen. Wenn ein Wert nicht in anderen Parametern enthalten ist, überspringen Sie
, sodass der verbleibende Wert der Wert ist, der zurückgegeben werden muss.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Eine kurze Diskussion des PHP-Quellcodes 16: Informationen zur Funktion array_count_values ​​​​

Eine kurze Beschreibung Diskussion des PHP-Quellcodes 15: Über die Funktion array_walk

Eine kurze Diskussion über den PHP-Quellcode 14: Über die Funktion array_combine

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion des PHP-Quellcodes siebzehn: Einführung in array_diff, array_udiff, array_diff_ukey, array_diff_uassoc, array_udiff_uassoc. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn