我试图在PHP中将上传的CSV文件处理成数组。我工作得很好,但用户的一些文件最后有一堆带分隔符的空白行。当他们在现有文件上使用Excel时,通常会发生这种情况。突出显示旧的单元格并将其清除。空格上的PHP CSV文件停止
档案范例
lineNo,date,vendor,amount 1,5/2/2012,V000236,3727.21 2,5/2/2012,V003432,4826.19 ,,, ,,,
成为下阵列
Array ( [0] => Array ( [0] => lineNo [1] => date [2] => vendor [3] => amount ) [1] => Array ( [0] => 1 [1] => 5/2/2012 [2] => V000236 [3] => 3727.21 ) [2] => Array ( [0] => 2 [1] => 5/2/2012 [2] => V003432 [3] => 4826.19 ) [3] => Array ( [0] => [1] => [2] => [3] => ) [4] => Array ( [0] => [1] => [2] => [3] => ) )
我不想只是删除任何空白行,我想停止2.转到容易对我的数组索引之后功能我是新:P
function csvToArray($csvFile, $specialChars = FALSE) {
$arrayCSV = array();
if (($csvHandle = fopen($csvFile, "r")) !== FALSE) { // Open the CSV
$csvKey = 0; // Set the parent array key to 0
while (($csvData = fgetcsv($csvHandle)) !== FALSE) {
$c = count($csvData); // Count the total keys in each row
//need something to stop on blank delimiter rows ,,,
for ($x = 0; $x < $c; $x++) { //Populate the array
if ($specialChars === TRUE) {
$arrayCSV[$csvKey][$x] = htmlspecialchars($csvData[$x]);
} else {
$arrayCSV[$csvKey][$x] = $csvData[$x];
}
}
$csvKey++;
}
fclose($csvHandle);
}
return $arrayCSV;
}
最后,我想这回
Array ( [0] => Array ( [0] => lineNo [1] => date [2] => vendor [3] => amount ) [1] => Array ( [0] => 1 [1] => 5/2/2012 [2] => V000236 [3] => 3727.21 ) [2] => Array ( [0] => 2 [1] => 5/2/2012 [2] => V003432 [3] => 4826.19 ) )
在最后一个数组上添加了一个未设置,谢谢! – AugustLindholm
@ user1439738很好,现在我明白了。感谢您的编辑;) –