我不知道下面將如何很好地執行大文件 - 測試文件與示例完全一樣,但只要我正確解釋模式,就會返回所需的結果。
$names_1=__DIR__.'\names1.txt';
$names_2=__DIR__.'\names2.txt';
/* Read each source file into an array */
$lines_1=file($names_1, FILE_TEXT | FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
$lines_2=file($names_2, FILE_TEXT | FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
/* placeholders */
$arr_1=array();
$arr_2=array();
$arr_3=array();
$arr_4=array();
/* Populate $arr_1 using value as key */
foreach($lines_1 as $index => $line){
list($w1,$w2)=explode('-', str_replace(' ', '', $line));
$arr_1[ $w2 ]=$w1;
}
/* populate arr_2 */
foreach($lines_2 as $index => $line){
list($w1,$w2)=explode('=', str_replace(' ', '', $line));
$arr_2[ $w1 ]=$w2;
}
/* Find where there are common keys between the two arrays */
$arr_3=array_intersect_key($arr_1, $arr_2);
/* populate output array in format expected */
foreach($arr_3 as $i => $v){
$arr_4[]=$arr_1[ $i ]. ' - '. $i .' = '.$arr_2[ $i ];
}
/* show results */
echo '<pre>',print_r($arr_4,true),'</pre>';
你有試過什麼嗎? – jycr753
已嘗試使用perl打開reguler,如:open(FILES,$ tar)或print(「Can not Locate:$ tar \ n」); my @ lists =; close(FILES); foreach $ list(@lists){ $ list =〜s/^ \ s + //; $ list =〜s/\ s + $ //; if($ list =〜/(.*):(.*)/ g){$ name1 = $ 1; my $ name2 = $ 2; ...但不知道如何打開第二個文件..讀取它1 1直到得到匹配...它保持從文件1讀取1結果..sorry我是新的程序的東西 –
user3869115
你應該編輯您的問題包括該代碼,以便它看起來像你自己努力解決這個問題。另外,哈希。 –