stripos动态过滤

问题描述 投票:0回答: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'],它可以工作,但是如果我尝试通过$el[$filter_name],则它不起作用,我尝试了其他几种组合,例如$el["$filter_name"]$el['.$filter_name.'],但没有任何作用。作为动态数据,我想传递变量

php strpos stripos
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 );
});
© www.soinside.com 2019 - 2024. All rights reserved.