ホームページ > php教程 > php手册 > 数百万のデータから重複データを除外する PHP 配列実装コード

数百万のデータから重複データを除外する PHP 配列実装コード

WBOY
リリース: 2016-06-13 12:15:53
オリジナル
1351 人が閲覧しました

100 万行を超える uid リストを取得する場合、形式は次のとおりです。

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


10001000
10001001
10001002
....
10001000
....
10001111 重複を整理するには、まず、 PHP 配列の定義を見てください。PHP の配列は実際には順序付きマップです。マップはキーに値を関連付けるタイプです。この型はさまざまな方法で最適化されているため、実数の配列、リスト (ベクトル)、ハッシュ テーブル (マップの実装)、ディクショナリ、セット、スタック、キューなどとして扱うことができます。さらなる可能性を。配列要素の値を別の配列にすることもできます。ツリー構造と多次元配列も許可されます。

PHP 配列では、キーはインデックスとも呼ばれ、一意です。この機能を使用して重複排除を実行できます。サンプル コードは次のとおりです。



コードをコピーします。

コードは次のとおりです。 //重複排除後に結果を格納する配列を定義します

$result = array (); 🎜>//uid リスト ファイルを読み取ります
$fp = fopen('test.txt', 'r');

while(!feof($fp))
{
$ uid = fgets($fp);
$uid = トリム($uid);
$uid = トリム($ uid, "n") );

if($uid == '')
{
continue;
}
//値が存在するかどうかを確認するために uid を使用します
if (empty($result[$uid]))
{
$result[$uid] = 1;
}
}

fclose($fp) ;
//結果をファイルに保存します
$content = '';
foreach($result as $k => $v)
{
$content .= $k." n";
}
$fp = fopen('result.txt', 'w');
fwrite($fp, $content);
fclose($fp) ;
?>


20 行を超えるコードで、100 万を超えるデータを重複排除できます。効率も良く、非常に実用的です。携帯電話番号と電子メールもこの方法で重複を排除できます。

また、この方法は 2 つの uid リスト ファイルがある場合、その形式は次のとおりです。


コードをコピーします

コードは次のとおりです:

//重複排除後の結果を保存する配列を定義します$result = array(); //最初の uid リスト ファイルを読み込み、$result_1

$fp = fopen('test_1.txt', 'r'); ($fp))

{
$uid = fgets($fp);
$uid = トリム($uid, "r") ; 🎜>$uid = trim($uid, "n");
if($uid == '')
{
Continue;
}
//Uid がキーです$result に書き込まれます。重複がある場合は上書きされます。
fclose($fp);ファイルをリストし、重複排除操作を実行します。
$fp = fopen('test_2.txt', 'r');
while(!feof($fp))
{
$uid = fgets( $ fp);
$uid = トリム($uid, "r"); > if($uid == '')
{
Continue;
}
//値が存在するかどうかを確認するために uid を使用します
if(empty($result[$uid) ] ))
{
$result[$uid] = 1;
}
}
fclose($fp); // $result に保存されるのは重複排除後です結果はファイルに出力でき、コードは省略されます


よく考えてみると、配列のこの機能を使用することで解決できることがわかります。私たちの仕事にさらなる問題が生じます。

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