1

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

您可以看到,如果我$el['title']在 stripos 中给出它,它可以工作,但如果我尝试通过$el[$filter_name]它不起作用,我尝试了其他几种组合,$el["$filter_name"] $el['.$filter_name.']但没有任何效果。作为它的动态数据,我想传递变量

4

1 回答 1

2

$filter_name在匿名函数中不可用,所以你需要use它,就像你做的一样$search_text

$expected88 = array_filter($array, function($el) use ($search_text, $filter_name) {
   return ( stripos($el[$filter_name], $search_text) !== false );
});
于 2020-03-14T13:58:12.923 回答