我有一个包含两个项的数组,这两个项也是数组本身:product
和countries
.
有些情况下,countries
数组对于多个产品是相同的,如下例中的basic
和pro
.
给定此数组:
$array = [
[
'product' => [
'value' => 'basic',
'label' => 'Basic'
],
'countries' => [
'Japan', // these
'Korea' // two...
],
],
[
'product' => [
'value' => 'pro',
'label' => 'Pro'
],
'countries' => [
'Japan', // ...and these two
'Korea' // are identical...
],
],
[
'product' => [
'value' => 'expert',
'label' => 'Expert'
],
'countries' => [
'Japan',
'France'
],
]
];
我想创建按countries
分组的新数组,更准确地说,
这就是我想要的结果:
$array = [
[
'product' => [
[
'value' => 'basic',
'label' => 'Basic'
],
[
'value' => 'pro',
'label' => 'Pro'
]
],
'countries' => [
'Japan', // ...so they are now one single array
'Korea' // as the two products 'basic' and 'pro' have been grouped
],
],
[
'product' => [
'value' => 'expert',
'label' => 'Expert'
],
'countries' => [
'Japan',
'France'
],
]
];
正如您在第二个代码片段中看到的,我要做的是将basic
和pro
分组到同一数组中,因为它们都共享完全相同的countries
(Korea
和Japan
).
几天来,我一直在try 使用这段代码,但它似乎只有在product
和countries
是字符串而不是数组的情况下才能起作用:
$grouped = array();
foreach ($array as $element) {
$grouped[$element['countries']][] = $element;
}
var_dump($grouped);