我有一个类似于下面的
的csv"0","Task 1","456461608"
"0","Task 2","483727014"
"1","Task 3","277047414"
我有以下php代码($ prep只是将数组中的数据写入db)
$csv_array = file($file_name);
foreach ($csv_array as $row_num => $row) {
$row = trim ($row);
$column = explode ( ',' , $row );
$param1 = $column[2];
$param2 = $column[1];
$param3 = $column[0];
// insert the row
$result = execute ( $prep );
}
我需要删除第一列($ param3)和最后一列($ param1)周围的引号。这样做最好的方法是什么?
答案 0 :(得分:2)
PHP有csv specific functions。您应该使用它们来处理您所面临的问题,即,如果列值包含引号,该怎么办。也:
$column = explode ( ',' , $row );
如果其中一列的值包含逗号,该怎么办?
csv函数将确保正确解析数据。
答案 1 :(得分:1)
有时阵列太笨了而无法完成工作。 Some objects更聪明:
$rows = new SplFileObject($path);
$rows->setFlags(SplFileObject::READ_CSV);
foreach($rows as $row)
{
var_dump($row);
}
输出:
array(3) {
[0]=> string(1) "0"
[1]=> string(6) "Task 1"
[2]=> string(9) "456461608"
}
array(3) {
[0]=> string(1) "0"
[1]=> string(6) "Task 2"
[2]=> string(9) "483727014"
}
array(3) {
[0]=> string(1) "1"
[1]=> string(6) "Task 3"
[2]=> string(9) "277047414"
}