Я пытался создать функцию для фильтрации значений LIKE в нескольких столбцах многомерного массива. Я попытался перебрать массив имен столбцов, чтобы создать функцию strpos, но в строковом формате. Когда я использовал eval для запуска взорванной строки кода, я получил ошибку «Неожиданный конец файла, eval d’code на строке xx».
Я не понимаю проблемы. Вот функция:
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);
}
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);
}
Сделано это. Благодарю.
Других решений пока нет …