上传excel与codeigniter时每列计数行

我想上传数据excel,但是在上传数据之前我想先确认这些数据。 例如:如果无法上传,则有一个空白列。 这个简单的问题,我如何计算以前上传的每列的行数?

所以后来的输出将是这样的:

第1栏:50行
第2栏:49行。 例如(假设空的1个数据)
第3栏:47行。 例如(假设空的3个数据)

这是我的控制器

for ($i = 1; $i <= $data['numRows']; $i++) { if($data['cells'][$i][1] == '') break; $kode=str_replace($simbol, '', $data['cells'][$i][1]); $dataexcel[$i-1]['kode_matkul'] = $kode; $dataexcel[$i-1]['nama_matkul'] = $data['cells'][$i][2]; $dataexcel[$i-1]['sks_a'] = $data['cells'][$i][3]; $dataexcel[$i-1]['sks_b'] = $data['cells'][$i][3]; $dataexcel[$i-1]['semester_matkul'] = $data['cells']$i][4]; } 

我尝试使用echo count($data['cells'][$i][1])但它不起作用

你需要创build一个数组来保存空单元的数量。 这可以使用简单的单个数组完成。

 $emptyValues = array_fill(1,$data['num_rows'],0) ; //create array of predefined length and set all valuese to 0. for ($i = 1; $i <= $data['numRows']; $i++) { if($data['cells'][$i][1] == '') { $emptyValues[$i]++ ; break; } $kode=str_replace($simbol, '', $data['cells'][$i][1]); $dataexcel[$i-1]['kode_matkul'] = $kode; $dataexcel[$i-1]['nama_matkul'] = $data['cells'][$i][2]; $dataexcel[$i-1]['sks_a'] = $data['cells'][$i][3]; $dataexcel[$i-1]['sks_b'] = $data['cells'][$i][3]; $dataexcel[$i-1]['semester_matkul'] = $data['cells']$i][4]; 

}

$emptyValues会是这样的

 [ 1 => 0, 2 => 1, //2nd column, 1 empty cell 3 => 3 ]; 

以上是未经testing的顺便说一句