分析の結果、単純な交差演算の場合は array_intersect() が最高のパフォーマンスを発揮し、カスタムの比較交差演算の場合は array_uintersect() が最高のパフォーマンスを発揮します。カスタム比較 Union 演算の場合、array_uunion() が最高のパフォーマンスを発揮します。
PHP のさまざまな配列交差および共用体メソッドのパフォーマンスを比較する
PHP には、配列交差を計算するためのメソッドがいくつかあります。そしてユニオンメソッド。実際のアプリケーションで情報に基づいた選択を行うには、これらのメソッドのパフォーマンスの違いを理解することが重要です。
配列の交差
配列結合
実際のケース:
それぞれ 100,000 個の要素を含む 2 つの大きな配列があると仮定します。次のコードを使用して、さまざまなメソッドの時間パフォーマンスを比較できます:
$array1 = range(1, 100000); $array2 = range(50001, 150000); // 数组交集 $start = microtime(true); $intersect = array_intersect($array1, $array2); $end = microtime(true); echo "array_intersect() took " . ($end - $start) . " seconds\n"; $start = microtime(true); $intersect = array_uintersect($array1, $array2, function($a, $b) { return $a <=> $b; }); $end = microtime(true); echo "array_uintersect() took " . ($end - $start) . " seconds\n"; // 数组并集 $start = microtime(true); $union = array_merge($array1, $array2); $end = microtime(true); echo "array_merge() took " . ($end - $start) . " seconds\n"; $start = microtime(true); $union = array_union($array1, $array2); $end = microtime(true); echo "array_union() took " . ($end - $start) . " seconds\n"; $start = microtime(true); $union = array_uunion($array1, $array2, function($a, $b) { return $a <=> $b; }); $end = microtime(true); echo "array_uunion() took " . ($end - $start) . " seconds\n";
結果:
実際のケースでは、array_union()単純なユニオン演算の場合は最も高速で、カスタム比較ユニオン演算の場合は array_uunion() が最も高速です。単純な交差演算の場合は array_intersect() が最も速く、カスタムの比較交差演算の場合は array_uintersect() が最も高速です。
注: パフォーマンスの違いは、アレイの特定の内容とコンピューターのハードウェア仕様によって異なる場合があります。実際のアプリケーションについて決定を下す前に、特定の使用例に対してベンチマーク テストを実施することをお勧めします。
以上がPHP でのさまざまな配列の交差および結合メソッドのパフォーマンスの比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。