Php str_getcsv在以制表符分隔的CSV上返回不完整的列
这是我的制表符分隔的CSV(我在这里用空格代替了制表符): 如果使用此函数,它将CSV作为数组返回,但不完整:Php str_getcsv在以制表符分隔的CSV上返回不完整的列,php,arrays,csv,Php,Arrays,Csv,这是我的制表符分隔的CSV(我在这里用空格代替了制表符): 如果使用此函数,它将CSV作为数组返回,但不完整: $content = file($file, FILE_SKIP_EMPTY_LINES); $rows = array_map('str_getcsv', $content, array_fill(0, count($content), "\t")); 这也不起作用: if(file_exists($file)){ $rows = array_map(function($v
$content = file($file, FILE_SKIP_EMPTY_LINES);
$rows = array_map('str_getcsv', $content, array_fill(0, count($content), "\t"));
这也不起作用:
if(file_exists($file)){
$rows = array_map(function($v){
return str_getcsv($v, "\t");
}, file($file, FILE_SKIP_EMPTY_LINES));
}
输出:
Array(
[0] => Array(
[0] => header1
[1] => header2
[2] => header3
[3] => header4
)
[1] => Array(
[0] => value1
[1] => value2
[2] => value3
)
[2] => Array(
[0] => value1
[1] => value2
)
)
它似乎将空选项卡视为一个选项卡,因此值的数组与标头相反,不完整
预期:
Array(
[0] => Array(
[0] => header1
[1] => header2
[2] => header3
[3] => header4
)
[1] => Array(
[0] => value1
[1] => value2
[2] => value3
[3] =>
)
[2] => Array(
[0] => value1
[1] => value2
[2] =>
[3] =>
)
)
如果您希望输出如下:
排列( [0]=>header1 [1]=>标题2 [2] =>标题3 [3] =>标题4 [4] =>值1 [5] =>值2 ... ) 只需更改您的csv数据,但如果您不想更改它。
如果您想要输出,您可以尝试使用函数:
排列( [0]=>header1 [1]=>标题2 [2] =>标题3 [3] =>标题4 [4] =>值1 [5] =>值2 ... ) 只需更改您的csv数据,但如果您不想更改它。
你可以尝试使用函数是的,我意识到我发布了一个空格分隔的CSV,但本质上,如果它是tab,输出将与上面相同,其中值的列数不相等。是的,我意识到我发布了一个空格分隔的CSV,但本质上,如果它是tab,当值的列数不相等时,输出将与上面相同。
Array(
[0] => Array(
[0] => header1
[1] => header2
[2] => header3
[3] => header4
)
[1] => Array(
[0] => value1
[1] => value2
[2] => value3
[3] =>
)
[2] => Array(
[0] => value1
[1] => value2
[2] =>
[3] =>
)
)