PHP合并数组中的相似值
问题描述:
$ arr =(a => array(1,2,3),b => array(1,2,3),c => array(4,5),d = > array(8,9,10),e => array(8,9),f => array(9,10);PHP合并数组中的相似值
我想合并相似的值,以便得到:
- 问题#1(相似的值,更硬):
$ new_arr =(A_B =>数组(1,2,3),C =>(4,5),d_e_f =>数组( 8,9,10));
- 问题#2(确切地相同的值,更容易):
$ new_arr =(A_B =>数组(1,2,3),C =>(4,5),d =>数组( 8,9,10),e =>阵列(8,9),f =>阵列(9,10));
什么是最有效的方式来上述?可能是一个难以解决的问题:D
谢谢!
答
$unique=array_unique($arr,SORT_REGULAR);
foreach (array_diff_key($arr,$unique) as $key=>$value) {
$oldkey=array_search($value,$unique);
unset($unique[$oldkey]);
$unique[$oldkey.'_'.$key]=$value;
}
var_dump($unique);
#2(版本array_unique'与数组的作品,但不会创建'a_b'键名')可能的第一步是在用户投稿须知array_unique: http://www.php.net/manual/en/function.array-unique.php#97285 – 2010-08-14 10:20:39