PHP - разбор txt файла - PullRequest
       22

PHP - разбор txt файла

0 голосов
/ 01 октября 2011

я бы хотел разобрать этот файл:

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») в каждом ключе этого массива. Кто-нибудь может мне помочь, пожалуйста?

Большое спасибо!

Ответы [ 4 ]

0 голосов
/ 01 октября 2011
$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 голосов
/ 01 октября 2011

Почему бы просто не взорвать вашу строку на пробел и использовать желаемое значение?

0 голосов
/ 01 октября 2011

Как то так?

foreach( $array as $key => $value ) {
    $split = explode( " ", $value );
    $array[$key] = $split[2]; 
}
0 голосов
/ 01 октября 2011

получить все строки файла

$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);

, а также, если файл хорошо написан:)

...