Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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 返回空变量的数组映射函数_Php_Arrays_String_Function_Array Map - Fatal编程技术网

Php 返回空变量的数组映射函数

Php 返回空变量的数组映射函数,php,arrays,string,function,array-map,Php,Arrays,String,Function,Array Map,我想将关键字的名称添加到我的filename字符串变量中,但我在日志中看到的值如下: array_map(function ($id) use ($filename) { $keyword = Keyword::find($id)->name; $filename .= $keyword . '-'; Log::info($filename); }, $input['ke

我想将关键字的名称添加到我的filename字符串变量中,但我在日志中看到的值如下:

array_map(function ($id) use ($filename) {
                $keyword = Keyword::find($id)->name;
                $filename .= $keyword . '-';
                Log::info($filename);
            }, $input['keyword_id']);
我想要的输出是一个字符串作为一行

keyword1
keyword2

但正如您所看到的,每次它都会更改字符串而不是追加。

如果您想将文件名作为引用传递,我认为它会起作用:

keyword1keyword2 
如果不这样做,它将不会在函数外部更改
$filename

编辑: 为我认为您正在尝试的工作提出不同的方法:

use(&$filename)
foreach($input['keyword\u id']作为$index=>$id){
$filename.=关键字::查找($id)->名称;
//如果这是最后一个要添加的关键字,请不要附加“-”
if($index
如果要将文件名作为引用传递,我认为它将起作用:

keyword1keyword2 
如果不这样做,它将不会在函数外部更改
$filename

编辑: 为我认为您正在尝试的工作提出不同的方法:

use(&$filename)
foreach($input['keyword\u id']作为$index=>$id){
$filename.=关键字::查找($id)->名称;
//如果这是最后一个要添加的关键字,请不要附加“-”
if($index
您没有返回回调中的每个项目

只需添加:

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 .= '-';
}

在数组映射回调中,您没有返回回调中的每个项

只需添加:

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 .= '-';
}

在数组映射回调中

数组映射
只需将一个数组映射到具有相同元素数的另一个数组。所以你需要在函数中返回一些东西。返回的数组可以内爆(连接)以将所有关键字组合在一起

return $filename

array\u map
只需将一个数组映射到具有相同元素数的另一个数组。所以你需要在函数中返回一些东西。返回的数组可以内爆(连接)以将所有关键字组合在一起

return $filename

你是对的,但我认为他实际上对
array\u map()
返回的数组不感兴趣,他只想迭代
$input['keywordid']
并将这些关键字名称(通过
关键字::find()
查找)附加到
$filename
-一个简单的
foreach
也会做同样的事情,你是对的,但我认为他实际上对
array\u map()
返回的数组不感兴趣,他只想迭代
$input['keywordid']
并附加这些关键字名称(通过
关键字::find()
查找)对于
$filename
——一个简单的
foreach
也可以用更少的代码完成同样的任务。