2014-11-06 43 views
0

我有问题试图找出一种方法,我可以解决以下问题,如果数组的元素是相互公用的,他们合并形成一个新的数组。PHP多维Arrray

举例来说,如果我有:

$array = [ [0,4], [1,2], [1,3], [3,2] ] 

然后把新的阵列将是这样的:

$newarray = [ [0,4], [1,2,3] ] 

凡有共同的元素$array阵列然后合并,我已经试过有几种方法可以循环使用阵列和比较单个元素,但是不能让我的头部绕过它,任何帮助都会很棒

另一个简单的例子wou LD是:

$array2 = [ [0,1], [3,4], [4,2], [2,3], [6,5] ]; 

$newarray2 = [ [0,1], [2,3,4], [5,6]] 

感谢

+0

直视[array_values()](http://php.net/manual/en/function.array-values.php)和[array_merge() ](http://php.net/manual/en/function.array-merge.php) – 2014-11-06 16:45:41

回答

0
$array2 = [ [0,1], [3,4], [4,2], [2,3], [6,5] ]; 
$wrk = array_count_values(call_user_func_array('array_merge', $array2)); 
ksort($wrk); 
$result = []; 
$prevValue = -INF; 
$i = -1; 
foreach($wrk as $key => $value) { 
    if ($value != $prevValue) { 
     $prevValue = $value; 
     ++$i; 
    } 
    $result[$i][] = $key; 
} 
var_dump($result);