ホームページ > php教程 > php手册 > 大きな配列を処理する場合の PHP の array_diff() 関数の効率の問題

大きな配列を処理する場合の PHP の array_diff() 関数の効率の問題

WBOY
リリース: 2016-06-13 12:03:34
オリジナル
1153 人が閲覧しました

cisa が PHP 公式 BUG ページに送信する方法

コードをコピー コードは次のとおりです。


< ?php
/ **
* PHP 5.2.6 以降の array_diff() 関数で大きな配列の処理に時間がかかる問題を解決しました。
*
*
* 主催: http://www.CodeBit. cn
* 出典: http://bugs.php.net/47643
*/
function array_diff_fast($data1, $data2) {
$data1 = array_flip($data1);
$data2 = array_flip($data2);
foreach($ data2 as $hash => $key) {
if (isset($data1[$hash])) unset($data1[$hash]);
}
return array_flip ($data1); コードは次のとおりです。
// 2 番目の配列を変換します。キーと値の関係
$secondArray = array_flip($secondArray);
// 最初の配列をループします。

foreach($firstArray as $key => $value ) {
// 最初の配列の場合 最初の配列の値が 2 つの配列に存在する
if (isset($secondArray[$value])) {

// 最初の配列の対応する要素を削除しますarrayunset($firstArray[ $key]); } } return $firstArray;

}

?>


このメソッド2 番目の配列のキーと値を交換するだけなので、より効率的です。
注: PHP の組み込みの array_diff() 関数は複数の配列を処理できますが、この記事で提供されるメソッドは 2 つの配列の比較のみを処理します。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート