2013-07-26 22 views
0

我得到了主數組鍵a1和a2。如何組合顯示重複鍵或重複的兩個多維數組,必須添加值

$array1 = array(a1=>array(200,300,300), a2=>array(100,600,200)); 
$array2 = array(a1=>array('gen','gen2','gen'), a2=>array('gen2','gen3','gen3')); 

我希望我的輸出是

'a1'=>array(
    'gen'=>200 
    'gen2'=>300 
    'gen'=>300 
), 
'a2'=>array(
    'gen2'=>100 
    'gen3' =>600 
    'gen3' =>200 
) 

'a1'=>array(
    'gen'=>500 
    'gen2'=>300 
) 
'a2'=>array(
    'gen2'=>100 
    'gen3'=>800 
) 

我曾嘗試這個代碼,但還不夠,它那並不表明重複的,或者它是否更好顯示重複鍵值的總和

<?php 
$array1 = array(a1=>array(200,300,300), a2=>array(100,600,200)); 
$array2 = array(a1=>array('gen','gen2','gen'), a2=>array('gen2','gen3','gen3')); 
$result = array(); 
foreach($array1 as $k => $v) { 
    $result[$k] = array_combine($array2[$k], $v); 
} 
print_r($result); 
?> 

非常感謝你的幫助

+0

你不能有重複鍵,所以它必須是後者(和) – kennypu

回答

0
$array1 = array(
    'a1' => array(200,300,300), 
    'a2' => array(100,600,200)); 
$array2 = array(
    'a1' => array('gen','gen2','gen'), 
    'a2' => array('gen2','gen3','gen3')); 
$result = array('a1' => array(), 'a2' => array()); 
foreach($array2 as $k => $v) { 
    foreach ($v as $k2 => $v2){ 
     if (array_key_exists($v2, $result[$k])){ 
      $result[$k][$v2] += $array1[$k][$k2]; 
     } else { 
      $result[$k][$v2] = $array1[$k][$k2]; 
     } 
    } 
} 

輸出:

Array 
(
    [a1] => Array 
     (
      [gen] => 500 
      [gen2] => 300 
     ) 
    [a2] => Array 
     (
      [gen2] => 100 
      [gen3] => 800 
     ) 
) 
+0

該代碼可以正常使用。非常感謝你!! –

+0

不客氣。您可以通過接受答案來獲得積分。這只是點擊答案左邊的複選標記而已。乾杯! –

+0

我也想要它,但我只是新來的,沒有足夠的聲望投票。 :-( –