如何使用双引号

时间:2017-08-06 23:01:41

标签: php arrays csv

我正在尝试使用php解析csv文件,

$csv = array_map("str_getcsv", file("upload/" . 
$newfilename,FILE_SKIP_EMPTY_LINES));
$keys = array_shift($csv);

foreach ($csv as $i=>$row) {
  $csv[$i] = array_combine($keys, $row);
}

foreach ($csv as $row) {
  echo $row["Due"];
}

var_dump($csv);

但是当我查看数组的转储时,Due数组键有双引号

array(20) { [0]=> array(10) { [""Due""]=> string(8) "30/06/17"

csv文件的引号中没有'Due',我不确定额外引号的来源,其余所有键都是正常的

我尝试过以下尝试让它发挥作用

echo $csv['Due'];
echo $csv['"Due"'];
echo $csv["\"Due\""];
echo $csv["Due"];

但没有工作

键的转储看起来像

array(10) { [0]=> string(8) ""Due"" [1]=> string(5) "Round" [2]=> string(4) "Jobs" [3]=> string(3) "New" [4]=> string(7) "Overdue" [5]=> string(8) "Due Jobs" [6]=> string(9) "Worksheet" [7]=> string(9) "Avg Price" [8]=> string(6) "Weekly" [9]=> string(7) "Monthly" }

并且CSV文件的顶行看起来像

"Due","Round","Jobs","New","Overdue","Due Jobs","Worksheet","Avg Price","Weekly","Monthly"

1 个答案:

答案 0 :(得分:1)

我通过打开CSV文件并重新使用引号“

来解决了这个问题

我检查了我删除的引号的ASCII值并替换了它们,它们完全相同。

我通过执行字符串替换删除任何引号“

来解决php中的问题
$keys[0] = str_replace('"', "", $keys[0]);

我仍然不确定导致这种情况的原因,因为当我转储$ keys变量时它没有显示引号。