Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用array\u filter按值筛选php数组_Php - Fatal编程技术网

使用array\u filter按值筛选php数组

使用array\u filter按值筛选php数组,php,Php,我正在尝试筛选一个数组,该数组将生成一个深入列表。 这个数组是从JSON构建的 我的数组看起来像这样 Array ( [0] => Array ( [make] => somemake [model] => somemodel [variant] => somevariant [fuel] => somefuel [vehi

我正在尝试筛选一个数组,该数组将生成一个深入列表。 这个数组是从JSON构建的

我的数组看起来像这样

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
                        )
                )
        )
)