2014-11-06 44 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);