我正在使用以下电话:$csv = array_map('str_getcsv', file($file), array($delimiter, '"', "\\"));第一行被正确解析为数组,但第二行保留为字符串。测试文件中的CSV分隔符(分号)是一致的,我找不到奇怪的字符。如果我添加sep=;. 什么问题可能导致这种情况?
1 回答
慕娘9325324
TA贡献1783条经验 获得超4个赞
这是对array_map如何工作的误解(文档中的语言相当混乱)。
取给定的片段:
$csv = array_map('str_getcsv', file($file), array($delimiter, '"', "\\"));
这在功能上类似于执行以下操作:
str_getcsv('line one of $file', $delimiter);
str_getcsv('line two of $file', '"');
str_getcsv('line three of $file', "\\");
这就是为什么第一行似乎有效的原因,因为分隔符是正确的,但后续的却没有,因为第二个参数在 CSV 的上下文中不正确。
- 1 回答
- 0 关注
- 163 浏览
添加回答
举报
0/150
提交
取消