2013-08-06 32 views
-1

嗨,我有這兩個數組,我想迭代/合併它們。這裏是我的代碼:php數組迭代一個數組並將其合併到最終的數組中

$userConfigArray = array(
         array(
           'country'=>'USA', 
           'bowieServer'=>$bowieSrvUSA, 
           'RMXserver'=>$rmxSrvUSA, 
          ), 

         array(
           'country'=>'GBR', 
           'bowieServer'=>$bowieSrvEU, 
           'RMXserver'=>$rmxSrvEU, 
          ), 

     ); 

$browseConfigArray = array(
         array(
           'opt' => '3', 
           'browseMax'=>'1', 
           'format'=>'xml', 
          ), 
         array(
           'opt' => '4,5', 
           'browseMax'=>'1', 
           'format'=>'xml', 
          ), 
       ); 

我希望我的最終輸出是這樣的:

array(
         array(
           'opt' => '3', 
           'browseMax'=>'1', 
           'format'=>'xml', 
           'country'=>'USA', 
           'bowieServer'=>$bowieSrvUSA, 
           'RMXserver'=>$rmxSrvUSA, 
          ), 
         array(
           'opt' => '4,5', 
           'browseMax'=>'1', 
           'format'=>'xml', 
           'country'=>'USA', 
           'bowieServer'=>$bowieSrvUSA, 
           'RMXserver'=>$rmxSrvUSA, 

          ), 
         array(
           'opt' => '3', 
           'browseMax'=>'1', 
           'format'=>'xml', 
           'country'=>'GBR', 
           'bowieServer'=>$bowieSrvEU, 
           'RMXserver'=>$rmxSrvEU, 
         ), 
         array(
           'opt' => '4,5', 
           'browseMax'=>'1', 
           'format'=>'xml', 
           'country'=>'GBR', 
           'bowieServer'=>$bowieSrvEU, 
           'RMXserver'=>$rmxSrvEU, 
         ), 
       ); 
+0

涼爽。你有問題嗎? – sgroves

回答

0

試試這個:

function array_merge_subitems($arr1, $arr2) { 
    $offset = 0; 
    $result = array(); 
    while (isset($arr1[$offset]) && isset($arr2[$offset])) { 
     $r1 = (isset($arr1[$offset])) ? $arr1[$offset] : array(); 
     $r2 = (isset($arr2[$offset])) ? $arr2[$offset] : array(); 
     $result[] = array_merge($r1, $r2); 

     $offset++; 
    } 

    return $result; 
} 
+0

這沒有奏效,它給了我錯誤sayPHP警告:在第86行的/Users/mkothari/Zend/1QA/apiAutomation/trunk/tests/testParent.php中的testParent :: getBrowseConfigArrayTests()缺少參數2 – user2118095

+1

@ user2118095這個錯誤與lucasvscn代碼無關! – DontVoteMeDown

0

要通過多維數組迭代,使用array_walk PHP函數與回調功能。

array_walk(array &$input , callable $funcname [, mixed $userdata = NULL ]); 

解決方案:

<?php 
$browserConfigArray = 
    array(array('opt' => '3', 'browseMax'=>'1', 'format'=>'xml'), 
      array('opt' =>'4.5', 'browseMax'=>'2', 'format'=>'json') 
    ); 
$userConfigArray = array(
     array('country'=>'USA', 'bowieServer'=>'USA', 'RMXserver'=>'1'), 
     array('country'=>'UK', 'bowieServer'=>'UK', 'RMXserver'=>'2')); 

static $finalArray = array(); 

function walkArray(&$item, $key, $params) 
{ 
    $item = array_merge($item, $params);  
} 
foreach($userConfigArray as $config) { 
    array_walk($browserConfigArray, 'walkArray', $config); 
    $finalArray = array_merge($finalArray, $browserConfigArray); 
} 
print_r($finalArray); 

>