100 万件のレコードを含むテキスト ファイルから、重複が最も多い上位 10 件のレコードを抽出します。 1. 100 万レコードのテキスト ファイルから、重複が最も多い上位 10 件を抽出します。 テキストの例: 098 123 234 789 … 234 678 654 123 アイデアを探しています 共有先: もっと見る -----解決策--------------------------------テーブルにインポートしてから SQL 統計を使用しますが、それが実現可能かどうかはわかりません。試してみることができます。 ------解決策---------explode //読み取りは配列に分割されます array_count_values//繰り返しの回数をカウントします arsort // ソートして結果を取得します -----解決策-------------------------------- はテキストを分割して処理できます。結果を記録します。一度にすべてを読み取るとメモリに保持できなくなると予想されます。------解決策--------- $fp = fopen('文件', 'r'); while($buf = fgets($fp)) { $res[$buf]++; } fclose($fp); arsort($res); $res = array_keys(array_slice($res, 0, 10)); print_r($res);ログイン後にコピー 100 万件のレコードの半分が一意である場合、以下のアルゴリズムと大きな違いはありません $a = file('文件'); $res = array_count_values($a); arsort($res); $res = array_keys(array_slice($res, 0, 10)); print_r($res);ログイン後にコピー