多维关联数组组,过滤器和回显

问题描述 投票:0回答:1

有人可以给我几个提示吗?无论我是否尝试使用array_column,array_push,array_filter,array_diff ...,我总是会出错的地方。

我想对多维关联数组进行分组,对其进行过滤并回显各组。

我的数组,例如是:

$cars = [
    ['Hersteller' => 'Audi',
        'Modell' => 'Btron',
        'Preis' => '60.000 €'
    ],
    ['Hersteller' => 'Tesla',
        'Modell' => 'Unununium',
        'Preis' => '5.000 €'
    ],
    ['Hersteller' => 'Audi',
        'Modell' => 'Quattro',
        'Preis' => '40.000 €'
    ],
    ['Hersteller' => 'Opel',
        'Modell' => 'Astra',
        'Preis' => '20.000 €'
    ],
    ['Hersteller' => 'Abba',
        'Modell' => 'Golf',
        'Preis' => '2.000 €'
    ],
    ['Hersteller' => 'Lamborghini',
        'Modell' => 'Diablo',
        'Preis' => '95.000 €'
    ],
    ['Hersteller' => 'Tesla',
        'Modell' => 'Roadster',
        'Preis' => '65.000 €'
    ],
];

我想按生产者/ Hersteller分组-通过将其过滤到一个新数组中,从原始数组中删除新数组并回显每个数组。

$cars2 = [];
$cars3 = [];
$cars4 = [];
$cars2 = array_filter($cars, function ($var) {
    return ($var['Hersteller'] == 'Audi');
});
$cars3 = array_filter($cars, function ($var) {
    return ($var['Hersteller'] == 'Tesla');
});

$cars4 = array_diff($cars, $cars2, $cars3);

...并用foreach($ cars2 as $ car)回显每个数组{回声''。 “赫斯特勒:”。 $ cars2 ['Hersteller'] ...

我的问题是(主要是在array_diff上!)>

有人可以给我一些提示吗?无论我是否尝试使用array_column,array_push,array_filter,array_diff ...,我总是会出错。我想分组一个...

php multidimensional-array associative
1个回答
0
投票

由于array_diff()不能很好地用于多维数组(它喜欢使用字符串),因此可以使用array_udiff(),这意味着您必须编写自己的比较。但是多亏了飞船运算符(array_udiff()),您可以使用此命令比较这些值...

© www.soinside.com 2019 - 2024. All rights reserved.