我具有以下功能。
public function searchAirports($query)
{
$url = 'storage/json/airports.json';
$file = file_get_contents($url);
$data = json_decode($file, true);
$data = array_filter($data);
$needles = ['name','city','country'];
$NeedledResults = [];
for( $i=0; $i < $needles; $i++ ) {
$param = $needles[$i];
$results= collect($data)->filter(function ($item) use ($query){ return false !== stristr($item[$param], $query); });
$a = $results->toArray();
array_push($NeedledResults,$a);
}
dd($NeedledResults);
return $filteredResults;
}
基本上,我有三个过滤器,用于按名称,城市和国家/地区搜索json数据集。 此功能可能并不漂亮,但是如果我直接用针线字符串之一替换$ param变量,它就可以了。
例如stristr($item['city'], $query);
可以很好地工作,但是如果我用$ param替换它,则会出现未定义的错误。
这真让我发疯!如果有人能指出我正确的方向,那将是非常有用的。
感谢所有:)