嗨我有这两个数组,我想迭代/合并它们。这是我的代码:
$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 :(得分: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;
}
答案 1 :(得分: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);
&GT;