我正在解析CSV文件,大型CSV文件,我需要解析str_getcsv函数(分隔符)的第二个参数,但我真的不知道如何...
我试图绕过数组映射函数,但是php向我抛出一个错误,允许超出内存大小。我也尝试过array_walk,但结果相同。
这是函数的样子,现在......
function parseIt($file)
{
$file = file($file);
// foreach ($file as $key => $value)
// {
// $rows[] = str_getcsv($value, ';');
// unset($file[$key]);
// }
// array_walk($file, function(&$item)
// {
// $item = str_getcsv($item, ';');
// });
// exit();
return array_map('str_getcsv', file($file));
}
所以,现在,我正在试图弄清楚如何通过array_map将第二个参数传递给str_getcsv ......
答案 0 :(得分:1)
您可以在array_map中设置分隔符,但是:
<?php
$string = [
"this;is;a;string;aaa",
"this2;is;a;string;aaa",
"this3;is;a;string;aaa",
"this4;is;a;string;aaa",
];
$output = array_map('str_getcsv', $string, [";", ";", ";", ";", ]);
[";"]
中的您必须在输入数组中添加与行数一样多的分隔符,例如。
来自str_getcsv
的其他参数可以同样的方式完成。