将具有相同元素值的数组组合在一起,并用逗号分隔所有元素 [英] Combine array with same element value and keep them all together, comma separated
本文介绍了将具有相同元素值的数组组合在一起,并用逗号分隔所有元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个多维数组
[0] => Array
(
[name] => Size
[value] => XS,S,XL
)
[1] => Array
(
[name] => Brand
[value] => Adidas
)
[2] => Array
(
[name] => Size
[value] => XS,XL,L,M
)
[3] => Array
(
[name] => Brand
[value] => Nike
)
我想要结果
[0] => Array
(
[name] => Size
[value] => S,M,L,XS,XL
)
[1] => Array
(
[name] => Brand
[value] => Adidas,Nike
)
我正在尝试array_combine
,array_merge
甚至array_unique
都没有成功
I'm trying to array_combine
, array_merge
and even array_unique
with no success
推荐答案
您可以尝试-
$array = array(
'0' => array
(
'name' => 'Size',
'value' => 'XS,S,XL',
),
'1' => array
(
'name' => 'Brand',
'value' => 'Adidas',
),
'2' => array
(
'name' => 'Size',
'value' => 'XS,XL,L,M',
),
'3' => array
(
'name' => 'Brand',
'value' => 'Nike',
)
);
$temp = $new = array();
foreach($array as $val) {
$temp[$val['name']][] = $val['value'];
}
foreach($temp as $key => $value) {
// merge values, fetch unique, then merge again
$values = implode(',', array_unique(explode(',', implode(',', $value))));
$new[] = array('name' => $key, 'value' => $values); // store
}
var_dump($new);
输出
array(2) {
[0]=>
array(2) {
["name"]=>
string(4) "Size"
["value"]=>
string(11) "XS,S,XL,L,M"
}
[1]=>
array(2) {
["name"]=>
string(5) "Brand"
["value"]=>
string(11) "Adidas,Nike"
}
}
这篇关于将具有相同元素值的数组组合在一起,并用逗号分隔所有元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文