A veces, debe ignorar la última línea o líneas del csv. Establecí el número de líneas ignoradas desde arriba como $start_offset y el número de líneas a ignorar desde abajo como $end_offset. Comience con cero y aumente hasta que desaparezca el error de compensación
Así es como lo hago:
$data = file_get_contents($filename);//load up csv
$data_array = explode("\n", $data);//break file into lines
$csv = array_map('str_getcsv', $data_array);//break up comma delimited
$csv_len = count($csv); //count of number of lines
$start_offset = 2;
$end_offset = 3;
for ($i=$start_offset; $i<$csv_len-$end_offset; $i++)
{
//access columns as $csv[$i][0], $csv[$i][1] etc
}