<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil hat nichts mit dem Inhalt des Artikels zu tun,Kann jede enthalten PHP Kommentare oder einfache Variablendefinitionen</span></span><span>
</span><span><span class="hljs-variable">$dummy</span></span><span> = </span><span><span class="hljs-string">"Dies ist vorunabhängiger Code"</span></span><span>;
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">placeholderFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"Ausgabe der Platzhalterfunktion"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/**
* PHP Wie man kombiniert array_udiff_assoc Und array_map Um einen genauen Vergleich von Array -Elementen zu erreichen?
*
* existieren PHP Mitte,Wenn wir Elemente von zwei Arrays vergleichen müssen,Und hoffe, dass der Vergleichsprozess die Schlüsselnamen berücksichtigen kann、Wenn der Wert und die benutzerdefinierte Vergleichslogik,
* array_udiff_assoc Und array_map Dies sind zwei sehr nützliche Werkzeuge。In diesem Artikel wird ausführlich erklärt, wie sie kombiniert werden können, um einen genauen Vergleich von Array -Elementen zu erreichen.。
*
* 1. array_udiff_assoc Einführung
* array_udiff_assoc() Wird verwendet, um die Unterschiede zwischen zwei Arrays zu vergleichen,同时考虑键名Und键值。Sein Funktionsprototyp ist wie folgt:
*
* array_udiff_assoc(array $array1, array $array2, callable $value_compare_func): array
*
* Hier $value_compare_func Es ist eine Rückruffunktion,Vergleichslogik für benutzerdefinierte Werte。
*
* 2. array_map Einführung
* array_map() 可以对数组Mitte的每个Element应用回调函数,Generieren Sie ein neues Array。Der Prototyp ist wie folgt:
*
* array_map(callable $callback, array ...$arrays): array
*
* passieren array_map,我们可以existieren比较前对数组Element进行标准化处理(Zum Beispiel Räume entfernen、Einheitlicher Fall usw.)。
*
* 3. Kombination von Ideen
* - verwenden array_map Einheitliche Verarbeitung von zwei Arrays,Elemente konsistent machen。
* - 然后verwenden array_udiff_assoc Vergleich von zwei Arrays,Verwenden Sie benutzerdefinierte Rückrufe, um genauere Diskrepanzurteile zu erhalten。
*
* Beispielcode:
*/</span>
</span><span><span class="hljs-comment">// Originalarray</span></span><span>
</span><span><span class="hljs-variable">$array1</span></span><span> = [
</span><span><span class="hljs-string">'a'</span></span><span> => </span><span><span class="hljs-string">' Apple '</span></span><span>,
</span><span><span class="hljs-string">'b'</span></span><span> => </span><span><span class="hljs-string">'Banana'</span></span><span>,
</span><span><span class="hljs-string">'c'</span></span><span> => </span><span><span class="hljs-string">'Cherry'</span></span><span>
];
</span><span><span class="hljs-variable">$array2</span></span><span> = [
</span><span><span class="hljs-string">'a'</span></span><span> => </span><span><span class="hljs-string">'apple'</span></span><span>,
</span><span><span class="hljs-string">'b'</span></span><span> => </span><span><span class="hljs-string">'banana '</span></span><span>,
</span><span><span class="hljs-string">'d'</span></span><span> => </span><span><span class="hljs-string">'Date'</span></span><span>
];
</span><span><span class="hljs-comment">// Einheitliche Verarbeitung von Array -Elementen(Entfernen Sie die vorderen und hinteren Räume und drehen Sie Kleinbuchstaben)</span></span><span>
</span><span><span class="hljs-variable">$normalizedArray1</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>));
}, </span><span><span class="hljs-variable">$array1</span></span><span>);
</span><span><span class="hljs-variable">$normalizedArray2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>));
}, </span><span><span class="hljs-variable">$array2</span></span><span>);
</span><span><span class="hljs-comment">// Benutzerdefinierte Vergleichsfunktionen</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">compareValues</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$value1</span></span></span><span>, </span><span><span class="hljs-variable">$value2</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strcmp</span></span><span>(</span><span><span class="hljs-variable">$value1</span></span><span>, </span><span><span class="hljs-variable">$value2</span></span><span>);
}
</span><span><span class="hljs-comment">// verwenden array_udiff_assoc Erhalten $array1 Mitte与 $array2 Verschiedene Elemente</span></span><span>
</span><span><span class="hljs-variable">$difference</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_udiff_assoc</span></span><span>(</span><span><span class="hljs-variable">$normalizedArray1</span></span><span>, </span><span><span class="hljs-variable">$normalizedArray2</span></span><span>, </span><span><span class="hljs-string">'compareValues'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Das Differenzelement nach präzisem Vergleich von zwei Arrays:\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$difference</span></span><span>);
<span class="hljs-comment">/**
* Ausgangsergebnis:
* Array
* (
* [c] => cherry
* )
*
* erklären:
* - Element 'c' => 'Cherry' existieren $array2 Mitte不存existieren,Daher wird es als Unterschied identifiziert。
* - Element 'a' Und 'b' durchlaufen trim Und strtolower Nach Standardisierung,Als gleich betrachten,因此不existieren结果Mitte。
*
* Zusammenfassen:
* passieren结合 array_map Und array_udiff_assoc,可以existieren比较数组时做到既考虑键名,Betrachten Sie auch den Wert,并且可以passieren回调函数自定义比较规则,
* Geeignet für komplexe Datendifferentialanalyseanforderungen。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Verwandte Tags:
array_map