我试图创建一个用于过滤多维数组的多列中的LIKE值的函数。我试图遍历列名数组以创建strpos函数,但以字符串格式。当我使用eval运行内含的代码字符串时,收到错误消息“文件意外结束,第xx行上的eval d'code”。
我不明白问题所在。这是函数:
public function ArrayFilterLike($array, $filter, $search){
$result = [];
foreach ($filter as $key => $value) {
$filter[$key] = "strpos(\$data['$value'], \$search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval($filter)){
$result[] = $data;
}
}
print_r($result);
}
答案 0 :(得分:0)
public function ArrayFilterLike($array, $filter, $search){
$result = [];
foreach ($filter as $key => $value) {
$filter[$key] = "strpos(\$data['$value'], \$search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval("return $filter;")){
$result[] = $data;
}
}
print_r($result);
}
做好了。谢谢。