如何将多个变量从全局作用域传递到回调作用域



我正在尝试使用下面的代码来过滤JSON数据,如果我给过滤器,它可以完美地工作

$search_text = '53';
$filter_name ='title';
$expected88 = array_filter($array, function($el) use ($search_text) {
return ( stripos($el['title'], $search_text) !== false );
//      return ( stripos($el[$filter_name], $search_text) !== false );


});
echo json_encode($expected88,true);

你可以看到,如果我在stripos()中给这个$el['title'],它是有效的,但如果我试图通过$el[$filter_name],它就不起作用。

我试过其他几种组合,比如$el["$filter_name"]$el['.$filter_name.'],但什么都不起作用——我想传递变量的是动态数据。

$filter_name在匿名函数中不可用,因此您需要use它,与$search_text:相同

$expected88 = array_filter($array, function($el) use ($search_text, $filter_name) {
return ( stripos($el[$filter_name], $search_text) !== false );
});

相关内容

  • 没有找到相关文章

最新更新