84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
一個檔案有30w條資料!每行一個資料
同行詞!例如post stop tops這樣的是同行詞你用什麼辦法把裡面的所有這樣數據找出來
求個思想
使用linux指令來完成需求。例
统计文件夹下包含Action( 数量 grep Action\( ~/www/pms/app/app/controllers/*.php | wc -l
我的建議是寫一個特別的排序演算法,然後用usort來排序,這樣同儕詞都排在一起了,然後依序輸出
排序演算法大致的邏輯是
int cmp($left, $right) { //如果长度都不一致,直接放弃 if(strlen($left) != strlen($right)) return strcmp($left, $right); //长度一致的,按照字符切分,统计,判断是否一致 $arrleft = str_split($left); $arrright = str_split($right); $leftstat = array(); $rightstat = array(); foreach($arrleft as $char) { if(array_key_exists($char, $leftstat)) $leftstat[$char]++; else $leftstat[$char]=0; } foreach($arrright as $char) { //逻辑类似 } //比较两个数组的统计是否一致 if(count(array_diff_assoc($leftstat, $rightstat)) == 0) return 0; else return strcmp($left, $right); }
1、排序30w行的數據,使用usort + 上面cmp函數
2、從第2行到尾遍歷排序的數據,判斷本行和上一行是否一致,是:輸出,不是,向下走。
大概吧。隨手寫的
雷雷
使用linux指令來完成需求。例
我的建議是寫一個特別的排序演算法,然後用usort來排序,這樣同儕詞都排在一起了,然後依序輸出
排序演算法大致的邏輯是
1、排序30w行的數據,使用usort + 上面cmp函數
2、從第2行到尾遍歷排序的數據,判斷本行和上一行是否一致,是:輸出,不是,向下走。
大概吧。隨手寫的
雷雷