2013-06-13 2 views
2

Файл содержит 3 столбца (вкладка разделена) и 10 строк. Как получить [столбцы] [строки] из массива $ lines? В настоящее время этот массив содержит 10 строк.Чтение файла txt в двумерный массив

$handle = @fopen('results.txt', "r"); 
if ($handle) { 
    while (!feof($handle)) { 
     $lines[] = fgets($handle, 4096); 
    } 
    fclose($handle); 
} 

for($i=0; $i<count($lines); $i++) 
{ 
    echo $lines[$i]; 
} 
+0

Вы можете использовать explode ("\ t") для получения столбцов. – Yami

+1

Посмотрите на встроенную функцию fgetcsv() PHP, а не на fgets() –

+0

@Yami * 'explode()' –

ответ

2

Для вашего специального ческий следующий фрагмент будет работать:

$array = array(
    array(), array(), array() 
); 
foreach(file('results.txt') as $line) { 
    // use trim to remove the end of line sequence 
    $record = explode("\t", trim($line)); 
    $array [0][]= $record[0]; 
    $array [1][]= $record[1]; 
    $array [2][]= $record[2]; 
} 

Обратите внимание, что я использую функцию file() что удобно в этой ситуации. Он возвращает массив со всеми строками файла.

Смежные вопросы