使用PHP计算csv中包含数据的行数


Count rows with data in csv using PHP

我想计算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;
?>