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

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

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

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 つの配列の比較のみを処理します。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート