日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

php实现文件内容去重及排序的示例代码分享(对Vector中的值进行排序)

發(fā)布時(shí)間:2023/12/15 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 php实现文件内容去重及排序的示例代码分享(对Vector中的值进行排序) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文將使用 php 和 linux sort 命令兩種方法,分別實(shí)現(xiàn)文件內(nèi)容去重及排序,并提供完成演示代碼。

1.創(chuàng)建測(cè)試文件

寫入1000000個(gè)數(shù)字,每行一個(gè)數(shù)字

<?php
$file = 'user_id.txt';
$num = 1000000;
$tmp = '';
for($i=0; $i<$num; $i++){    
$tmp .= mt_rand(0,999999).PHP_EOL;    
if($i>0 && $i%1000==0 || $i==$num-1){
        file_put_contents($file, $tmp, FILE_APPEND);        
        $tmp = '';
    }
}?>

登錄后復(fù)制

查看文件行數(shù)

wc -l user_id.txt
 1000000 user_id.txt

登錄后復(fù)制

2.php實(shí)現(xiàn)去重及排序

因要處理1000000行數(shù)據(jù),因此將php可使用的內(nèi)存設(shè)置為256m,防止執(zhí)行過程中內(nèi)存不足。

<?php/**
 * 文件內(nèi)容去重及排序
 * @param String $source    源文件
 * @param String $dest      目標(biāo)文件
 * @param String $order     排序順序
 * @param Int    $sort_flag 排序類型
 */function fileUniSort($source, $dest, $order='asc', $sort_flag=SORT_NUMERIC){

    // 讀取文件內(nèi)容
    $file_data = file_get_contents($source);    // 文件內(nèi)容按行分割為數(shù)組
    $file_data_arr = explode(PHP_EOL, $file_data);    // 去除空行數(shù)據(jù)
    $file_data_arr = array_filter($file_data_arr, 'filter');    // 去重
    $file_data_arr = array_flip($file_data_arr);    $file_data_arr = array_flip($file_data_arr);    // 排序
    if($order=='asc'){
        sort($file_data_arr, $sort_flag);
    }else{
        rsort($file_data_arr, $sort_flag);
    }    // 數(shù)組合拼為文件內(nèi)容
    $file_data = implode(PHP_EOL, $file_data_arr).PHP_EOL;    // 寫入文件
    file_put_contents($dest, $file_data, true);

}// 過濾空行function filter($data){
    if(!$data && $data!=='0'){        return false;
    }    return true;
}// 設(shè)置可使用內(nèi)存為256mini_set('memory_limit', '256m');$source = 'user_id.txt';$dest = 'php_sort_user_id.txt';

fileUniSort($source, $dest);?>

登錄后復(fù)制

查看去重及排序后的文件

wc -l php_sort_user_id.txt 
  632042 php_sort_user_id.txt

head php_sort_user_id.txt 
012357891112...

登錄后復(fù)制

3.linux sort命令實(shí)現(xiàn)去重及排序

linux sort命令用于文本文件按行排序

格式:

sort [OPTION]... [FILE]...

登錄后復(fù)制

參數(shù)說明:

-u 去重
-n 數(shù)字排序類型
-r 降序
-o 輸出文件的路徑

使用sort執(zhí)行去重及排序

sort -uno linux_sort_user_id.txt user_id.txt

登錄后復(fù)制

查看去重及排序后的文件

wc -l linux_sort_user_id.txt 
  632042 linux_sort_user_id.txt

head linux_sort_user_id.txt 
012357891112...

登錄后復(fù)制

總結(jié):使用php或linux sort命令都可以實(shí)現(xiàn)文件去重及排序,執(zhí)行時(shí)間上相差不大,但建議對(duì)于文件類的操作,直接使用系統(tǒng)命令實(shí)現(xiàn)更為簡(jiǎn)單。

本文將使用 php 和 linux sort 命令兩種方法,分別實(shí)現(xiàn)文件內(nèi)容去重及排序,并提供完成演示代碼。

以上就是php實(shí)現(xiàn)文件內(nèi)容去重及排序的示例代碼分享的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注風(fēng)君子博客其它相關(guān)文章!

總結(jié)

以上是生活随笔為你收集整理的php实现文件内容去重及排序的示例代码分享(对Vector中的值进行排序)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。