【发布时间】:2018-09-13 17:43:30
【问题描述】:
<?php
ini_set('auto_detect_line_endings', TRUE);
$csv = array_map('str_getcsv', file('Testcsv.csv'));
print_r($csv);
此代码解析看起来像这样的 Testcsv.csv 文件..
4,5,6,7,8
9,10,11,12,13
0,1,3,2,15
然而最后一个打印语句返回
Array
(
[0] => Array
(
[0] => 4
[1] => 5
[2] => 6
[3] => 7
[4] => 8
)
[1] => Array
(
[0] => 9
[1] => 10
[2] => 11
[3] => 12
[4] => 13
)
[2] => Array
(
[0] => 0
[1] => 1
[2] => 3
[3] => 2
[4] => 15
)
)
vardump($csv) 产生
array(3) {
[0]=>
array(5) {
[0]=>
string(4) " 4"
[1]=>
string(1) "5"
[2]=>
string(1) "6"
[3]=>
string(1) "7"
[4]=>
string(1) "8"
}
[1]=>
array(5) {
[0]=>
string(1) "9"
[1]=>
string(2) "10"
[2]=>
string(2) "11"
[3]=>
string(2) "12"
[4]=>
string(2) "13"
}
[2]=>
array(5) {
[0]=>
string(1) "0"
[1]=>
string(1) "1"
[2]=>
string(1) "3"
[3]=>
string(1) "2"
[4]=>
string(2) "15"
}
}
无论我做什么或如何格式化 csv,第一个值总是会在其前面推入一个空白空间。在这种情况下,“4”而不是“4”。我不明白为什么。我在一台mac电脑上,没有第一行代码,事情变得非常不稳定,因为它没有检测到换行符。我在 Excel 中创建并保存了 .csv。任何见解都会有所帮助,谢谢。
【问题讨论】:
-
你是用记事本还是excel来打开/修改文件?还有
var_dump($csv)会产生什么?
标签: php csv multidimensional-array