2012-04-02 3 views
-1

У меня есть сценарий, который читается из CSV-файла, а иногда файлы CSV, которые он получает, содержат нечетное количество разделителей/столбцов, поэтому первая строка может содержать 30 столбцов, вторая может иметь 20 и т. д. Я могу думать о нескольких решениях, например:php читает CSV с разным количеством разделителей

Подсчитайте разделители в самой широкой строке, а затем добавьте правильную сумму в каждую строку, которая является коротким, чтобы сделать их четными.

Но мне было интересно, есть ли у кого-нибудь более элегантный способ сделать это.

+0

делать то, что именно? –

+0

Итак, после создания разделителей, вам нужно написать (изменить) файл? –

+0

Почему каждая строка нуждается в том же количестве разделителей в первую очередь? вы уверены, что это необходимо для вашей программы? – dqhendricks

ответ

2

Это зависит от того, что вы используете для чтения CSV-самого элегантного видели это fgetcsv Пожалуйста, смотрите http://www.php.net/manual/en/function.fgetcsv.php для получения дополнительной информации

Существует пример, что там подсчитывает количество CSV ...

$row = 1; 
if (($handle = fopen("test.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $num = count($data); 
     echo "<p> $num fields in line $row: <br /></p>\n"; 
     $row++; 
     for ($c=0; $c < $num; $c++) { 
      echo $data[$c] . "<br />\n"; 
     } 
    } 
    fclose($handle); 
} 

Благодаря

:)

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