使用array\u filter按值筛选php数组
我正在尝试筛选一个数组,该数组将生成一个深入列表。 这个数组是从JSON构建的 我的数组看起来像这样使用array\u filter按值筛选php数组,php,Php,我正在尝试筛选一个数组,该数组将生成一个深入列表。 这个数组是从JSON构建的 我的数组看起来像这样 Array ( [0] => Array ( [make] => somemake [model] => somemodel [variant] => somevariant [fuel] => somefuel [vehi
Array
(
[0] => Array
(
[make] => somemake
[model] => somemodel
[variant] => somevariant
[fuel] => somefuel
[vehicle] => somedetailedinfo
)
[1] => Array
(
[make] => somemake
[model] => somemodel1
[variant] => somevariant1
[fuel] => somefuel1
[vehicle] => somedetailedinfo
)
[2] => Array
(
[make] => somemake
[model] => somemodel2
[variant] => somevariant2
[fuel] => somefuel
[vehicle] => somedetailedinfo
)
[3] => Array
(
[make] => somemake1
[model] => somemodel3
[variant] => somevariant3
[fuel] => somefuel1
[vehicle] => somedetailedinfo
)
)
我想通过make$make来过滤这个数组,make$make是由$\u服务器['QUERY\u STRING']设置的
新数组应包含make$make的所有项
如何使用array_filter实现这一点?这相当简单。请注意,空合并??大于等于7.0
$make = $_GET['make'] ?? 'Chevy';
$vehicles = [[
'make' => 'Ford',
'model' => 'F-150',
'variant' => '4x4',
'fuel' => 'diesel',
'vehicle' => [range(1,3)],
],[
'make' => 'Ford',
'model' => 'Escort',
'variant' => 'XS',
'fuel' => 'gas',
'vehicle' => [range(1,3)],
],[
'make' => 'Chevy',
'model' => 'Cobalt',
'variant' => 'ES',
'fuel' => 'electric',
'vehicle' => [range(1,3)],
],[
'make' => 'Ford',
'model' => 'Explorer',
'variant' => '2x4',
'fuel' => 'gas',
'vehicle' => [range(1,3)],
],[
'make' => 'Mini',
'model' => 'Cooper',
'variant' => 'eTurbo',
'fuel' => 'electro-diesel',
'vehicle' => [range(1,3)],
],];
print_r(array_filter($vehicles, function($vehicle) use($make) {
return $vehicle['make'] === $make;
}));
给出:
Array
(
[2] => Array
(
[make] => Chevy
[model] => Cobalt
[variant] => ES
[fuel] => electric
[vehicle] => Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
)
)