2011-10-01 189 views
-2

我想分析這個文件:PHP - 解析txt文件

Case Given  Predicted 
No  Class  Class 
1  ?    0    [0.80] 
2  ?    0    [0.80] 
3  ?    0    [0.80] 
4  ?    1    [0.75] 
5  ?    0    [0.80] 
6  ?    0    [0.80] 
7  ?    1    [0.75] 
8  ?    0    [0.80] 
9  ?    0    [0.80] 
10  ?    0    [0.80] 
11  ?    1    [0.75] 
12  ?    0    [0.80] 
13  ?    0    [0.80] 
14  ?    0    [0.80] 
15  ?    0    [0.80] 
16  ?    0    [0.80] 
17  ?    0    [0.80] 
18  ?    0    [0.80] 
19  ?    0    [0.80] 
20  ?    0    [0.80] 

特別是,我想借此從第三欄(「預測的類」)值我打開文件感謝:

$txt_file = file_get_contents('simone.result'); 
$array  = explode("\n", $txt_file); 
array_shift($array); 
array_shift($array); 
array_shift($array); 

而且我有這樣的:

Array ([0] => 1 ? 0 [0.80] [1] => 2 ? 0 [0.80] 

確定這是正確的。但是我只想要這個數組中每個鍵的第三個值(「0」或「1」)。有人可以幫我嗎?

非常感謝!

+0

什麼是列分隔符?幾個空間? –

+0

我不知道。它是自動創建的。我認爲是一個TAB。 「我不知道」爲 – Andre

+1

-1。這是你的程序,你應該在詢問其他人的幫助之前知道你的數據。 –

回答

0
$lines = file('simone.result'); 
$column3 = array(); 
for($i = 2, $ilen = count($lines); $i < $ilen; $i++) 
{ 
    $columns = preg_split('/\s+/', $lines[ $i ]); 
    $column3[] = $columns[ 2 ]; 
} 

var_dump($column3); 
+0

沒有來自「var_dump($ column3)」的結果; – Andre

+0

@Andre:請參閱我的答案中的編輯。 –

+0

我不知道爲什麼。我認爲你是正確的,但在我的腳本中它不工作,我總是這個愚蠢的空白頁! – Andre

-1

檢索他們的文件

$lines = file($txt_file); 

然後循環的所有行:

foreach($lines as $line) 
{ 
    list($v1,$v2,$v3,$v4) = explode("\n", trim($line)); //assuming separator is a space \t for tab 

    //take the values you need here 
    $tmp[] = $v3; 

} 

print_r($tmp); 

以及這項工作,如果該文件寫得很好:)

+0

你爲什麼編輯? –

+0

這不起作用。我總是隻有空白頁:( – Andre

+0

@ Col.Shrapnel增加了一條評論 –

0

爲什麼不只是單純的爆炸你的字符串的空間,並使用你想要的值?

+0

我試過了。但它似乎不工作。 $ array2 = explode(「」; $ array); print_r($ array2); 如果我打印$ array2我得到空白頁 – Andre

+0

爲什麼你把在這些參數之間使用分號嗎?難怪你會得到一個空白頁面嗎?^^ –

0

是這樣的嗎?

foreach($array as $key => $value) { 
    $split = explode(" ", $value); 
    $array[$key] = $split[2]; 
} 
+0

不,它不起作用。總是空白頁。 – Andre

+0

什麼給空白頁?var_dump($ array)? – MasterCassim

+0

是。我不知道爲什麼! – Andre