我遇到了php fgetcsv()方法的问题。我只能得到值“1”而不是每行的数组。这是代码:
$row = 0;
$teststring='';
$handle = fopen($savepath,'r');
if($handle!==FALSE){
while(($data = fgetcsv($handle,2000,'|')!==FALSE)){ //I am using '|' as the delimiter
echo (string)$data;
if($row!=0){
foreach($data as $d){
array_push($result['added'],$d);
}
}
$row++;
}
fclose($handle);
}
我测试了3行csv文件,结果为“111”。当然,数组$ result ['added']没有值。任何人都可以知道发生了什么吗?谢谢。
答案 0 :(得分:7)
操作顺序!
while(($data = fgetcsv($handle,2000,'|')!==FALSE)){
PHP将此行解释为:
fgetcsv
false
$data
这不是你想要的。你的parens放错了地方,你想要之前的比较:
while( ($data = fgetcsv($handle,2000,'|')) !== FALSE ){
我添加了额外的空格,使更改更加明显。