我正在尝试使用下面的代码来过滤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 );
});