Php 如何使用双引号访问数组键
我正在尝试使用php解析csv文件Php 如何使用双引号访问数组键,php,arrays,csv,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
$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"
我通过打开CSV文件并重新做引号解决了问题” 我检查了我删除并替换为的引号的ASCII值,它们完全相同 我用php解决了这个问题,用字符串替换删除了所有引号“
我仍然不确定是什么导致了这种情况,因为当我转储$keys变量时,它没有显示引号 什么是
var\u dump($keys)代码>外观?注意,echo$csv[“到期”]代码>行不会影响存储在$csv
中的内容。请使用$csv[0]
而不是$csv
重试。您已经获得了一个多维数组。或者使用$row
@rtfm在您的foreach($csv as$row)
循环中进行测试。我已经用$keys更新了问题。您提供了所有内容,但没有提供导致情况发生的实际数据的示例。
$keys[0] = str_replace('"', "", $keys[0]);