<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil des Codes hat nichts mit dem Inhalt des Artikels zu tun,Nur als Beispiel Header</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Willkommen, um diesen Artikel zu lesen!"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h1>So verwenden Sie effizient unter großem Datenvolumen <code>array_uintersect
Die Optimierungsidee besteht darin, zuerst die wichtigsten Felder zu extrahieren, einen Hash -Index festzulegen und dann unter dem Index nach Schnitturteilen zu urteilen:
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">extractKeys</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">array</span></span></span><span> </span><span><span class="hljs-variable">$arr</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$keyField</span></span><span>): </span><span><span class="hljs-title">array</span></span><span> {
</span><span><span class="hljs-variable">$keys</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$arr</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$item</span></span><span>) {
</span><span><span class="hljs-variable">$keys</span></span><span>[</span><span><span class="hljs-variable">$item</span></span><span>[</span><span><span class="hljs-variable">$keyField</span></span><span>]] = </span><span><span class="hljs-literal">true</span></span><span>;
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$keys</span></span><span>;
}
</span><span><span class="hljs-variable">$keys1</span></span><span> = </span><span><span class="hljs-title function_ invoke__">extractKeys</span></span><span>(</span><span><span class="hljs-variable">$arr1</span></span><span>, </span><span><span class="hljs-string">'key'</span></span><span>);
</span><span><span class="hljs-variable">$keys2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">extractKeys</span></span><span>(</span><span><span class="hljs-variable">$arr2</span></span><span>, </span><span><span class="hljs-string">'key'</span></span><span>);
</span><span><span class="hljs-variable">$commonKeys</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_intersect_key</span></span><span>(</span><span><span class="hljs-variable">$keys1</span></span><span>, </span><span><span class="hljs-variable">$keys2</span></span><span>);
</span><span><span class="hljs-variable">$result</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$arr1</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$item</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$commonKeys</span></span><span>[</span><span><span class="hljs-variable">$item</span></span><span>[</span><span><span class="hljs-string">'key'</span></span><span>]])) {
</span><span><span class="hljs-variable">$result</span></span><span>[] = </span><span><span class="hljs-variable">$item</span></span><span>;
}
}
Die Vorteile, dies zu tun, sind:
Die direkte Verwendung von Array_Uintersect in einer großen Datenumgebung kann zu Leistungs Engpässen führen. Durch Optimierungsstrategien wie die Hash -Zuordnung im Voraus, die Reduzierung von Rückrufanrufen und das Chunking -Verarbeitung können die Ausführungseffizienz erheblich verbessert werden. Passen Sie in den tatsächlichen Projekten die spezifische Datenstruktur und die Nutzungsszenarien flexibel an, um die beste Leistung zu erzielen.