php - array_map 函数返回空变量
问题描述
array_map(function ($id) use ($filename) {
$keyword = Keyword::find($id)->name;
$filename .= $keyword . '-';
Log::info($filename);
}, $input['keyword_id']);
我想将关键字的名称添加到我的文件名字符串变量中,但我在日志中看到的值如下:
keyword1
keyword2
我想要的输出是一个字符串作为一行。
keyword1keyword2
但是正如您所看到的,每次它都会更改字符串而不是追加。
解决方案
您想将文件名作为参考传递,我认为它会起作用:
use(&$filename)
如果你不这样做,它不会改变$filename
函数的外部。
编辑:为我认为您正在尝试做的事情提出不同的方法:
foreach ($input['keyword_id'] as $index => $id) {
$filename .= Keyword::find($id)->name;
// dont append a "-" if this is the last keyword to be added
if ($index < sizeof($input['keyword_id'])-1)
$filename .= '-';
}
推荐阅读
- android - WebView 显示消息“抱歉有错误”
- ubuntu - 如何使用 SNMP Ubuntu 获取有关已安装程序的信息
- r - 如何按日期获取滞后变量的差异?
- angular - Angular JWT:授权标头为空?
- unity3d - Unity IBM Watson Translation,使用具有正确凭据的示例场景不起作用,但也没有显示错误消息
- javascript - 单击“是”按钮后,引导模式窗口未立即关闭
- android - Android ViewPager2如何检索片段onBindViewHolder
- python - python locust中的任务权重和顺序
- sql-server - 在运行时将存储过程输出到临时表
- python-3.x - nx1 矩阵的多元回归中的 OLS