我想计算csv中数据的总行数。我做了以下事情:
<?php echo count(file('example.csv',FILE_IGNORE_NEW_LINES |` `FILE_SKIP_EMPTY_LINES)); ?>
这里,若所有的值都只在第一列,那个么输出是正确的。例如Row1Col1='a'
&Row4Col1='b'
o/p=2正确,因为行中的数据是
Row1->'a',Row2->'',Row3->'',Row4->'b'
但如果值在不同的列中,则会得到错误的输出。例如Ro1Col3='a'
&Row4Col1='b'
o/p=4错误(需要正确的输出为2),因为行中的数据是
Row1->'a', Row2->',,' Row3->',,' Row4->'b'.
谢谢,Jaydeep
您可以尝试PHP函数函数.str_getcsv
可以使用函数.array_filter删除CSV中的任何null
元素。
<?php
$csv_complete_contents = array_map('str_getcsv', file('example.csv'));
$csv_complete_filtered = array_filter(array_map('array_filter', $csv_complete_contents));
$csv_num_rows = count($csv_complete_filtered);
echo $csv_num_rows;
?>