作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用此代码从 csv 文件中获取数组:
array_map('str_getcsv', 'file.csv')
但是在 array_map 函数中使用它时,如何为 str_getcsv()
设置分隔符?
最佳答案
如果您需要将额外的参数附加到一个需要可调用函数的函数,最简单的方法是传入一个带有预定义参数的包装函数
$array = array_map(function($d) {
return str_getcsv($d, "\t");
}, file("file.csv"));
或者,您可以使用 use()
传递参数带闭包的语法。
$delimiter = "|";
$array = array_map(function($d) use ($delimiter) {
return str_getcsv($d, $delimiter);
}, file("file.csv"));
可以使用此技术完成的另一件有趣的事情是创建一个函数,该函数返回具有内置预定义值的函数。
function getDelimitedStringParser($delimiter, $enclosure, $escapeChar){
return function ($str) use ($delimiter, $enclosure, $escapeChar) {
return str_getcsv($str, $delimiter, $enclosure, $escapeChar);
};
}
$fileData = array_map("trim", file("myfile.csv"));
$csv = array_map(getDelimitedStringParser(",", '"', "\\"), $fileData);
关于php - 如何在 array_map() 中为我的回调函数使用参数/自变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31879969/
我是一名优秀的程序员,十分优秀!