php合并重复数组元素,算法 – php如何将一个数组重复的元素合并到一个新的数组?...

假设当前数组为

array(

0=>array(‘key1’=>’value1‘ , ‘key2’=>’value2’),

1=>array(‘key1’=>’value1‘ , ‘key2’=>’value3’),

2=>array(‘key1’=>’value2’ , ‘key2’=>’value4’),

999=>array(‘key1’=>’value2’ , ‘key2’=>’value5’)

)

如何将这个array中 key1的value 相同的情况下 将key2的value合并成一个新的数组。求写一个方法将原数组转化问 如下数组

array(

0=>array(‘value1’=>array(‘value2′,’value3’)),

1=>array(‘value2’=>array(‘value4′,’value5’)),

)

回复内容:

假设当前数组为

array(

0=>array(‘key1’=>’value1‘ , ‘key2’=>’value2’),

1=>array(‘key1’=>’value1‘ , ‘key2’=>’value3’),

2=>array(‘key1’=>’value2’ , ‘key2’=>’value4’),

999=>array(‘key1’=>’value2’ , ‘key2’=>’value5’)

)

如何将这个array中 key1的value 相同的情况下 将key2的value合并成一个新的数组。求写一个方法将原数组转化问 如下数组

array(

0=>array(‘value1’=>array(‘value2′,’value3’)),

1=>array(‘value2’=>array(‘value4′,’value5’)),

)

题主,是无论 key1是否有重复都独立吗?下面是这样的做法

$arr = array(

0=>array('key1'=>'value1' , 'key2'=>'value2'),

1=>array('key1'=>'value1' , 'key2'=>'value3'),

2=>array('key1'=>'value2' , 'key2'=>'value4'),

999=>array('key1'=>'value2' , 'key2'=>'value5')

);

$result = array();

foreach ($arr as $data) {

isset($result[$data['key1']]) || $result[$data['key1']] = array();

$result[$data['key1']][] = $data['key2'];

}

print_r($result);

//输出如下

Array

(

[value1] => Array

(

[0] => value2

[1] => value3

)

[value2] => Array

(

[0] => value4

[1] => value5

)

)

我觉得你换一种数组组织形式会好很多

当然如果不能换的话会非常辛苦,

比如用遍历去做

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值