gpt4 book ai didi

php - 如何在 array_map() 中为我的回调函数使用参数/自变量?

转载 作者:行者123 更新时间:2023-12-01 16:22:13 27 4
gpt4 key购买 nike

我正在使用此代码从 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com