Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php str_getcsv在以制表符分隔的CSV上返回不完整的列_Php_Arrays_Csv - Fatal编程技术网

Php str_getcsv在以制表符分隔的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

这是我的制表符分隔的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){
        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] => 
        )
)