$ arr =(a =>数组(1,2,3),b =>数组(1,2,3),c =>数组(4,5),d =>数组( 8,9,10),e =>数组(8,9),f =>数组(9,10);
我想合并相似的值,以便我得到:
$ new_arr =(a_b => array(1,2,3),c =>(4,5),d_e_f => array(8,9,10));
$ new_arr =(a_b => array(1,2,3),c =>(4,5),d => array(8,9,10),e => array(8 ,9),f => array(9,10));
什么是最有效的方法?可能是一个难以解决的问题:D
谢谢!
答案 0 :(得分:1)
我将这个发现称为图表的“连通组件”。
http://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29
答案 1 :(得分:0)
$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);