-1

嗨,我有这两个数组,我想迭代/合并它们。这是我的代码:

$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,
                        ),
                );
4

2 回答 2

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;
}
于 2013-08-06T18:28:29.653 回答
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);

?>

于 2013-08-06T19:33:58.480 回答