我有一个使用不同参数运行多次的查询。我正在使用 xml 解析器将结果返回给 jQuery。
我似乎无法找到一种方法来组合第一个“节点”上的结果而不覆盖第一个条目。
简化的代码示例:
$temp1 = returnArray(0);
$temp2 = returnArray(1);
$data = array_merge($temp1, $temp2);
print_r($data);
function returnArray($switch)
{
if($switch == 0)
{
$data['data']['first'] = "something";
} else {
$data['data']['second'] = "something ELSE";
}
return $data;
}
结果打印出来Array ( [data] => Array ( [second] => something ELSE ) )
- $temp2 正在覆盖 $temp1。我理解这是 array_merge() 的默认行为,这让我感到困惑。
我也尝试过做类似的事情$data = $temp1+$temp2;
or...
$data = returnArray(0);
$data += returnArray(1);
prints Array ( [data] => Array ( [first] => something ) )
or...
$data = returnArray(0);
$data .= returnArray(1);
print_r($data);
prints ArrayArray
我最终把这个组合在一起:
$data['data'] = returnArray(0);
$data['data'] = returnArray(1);
function returnArray($switch){
if($switch == 0) return Array('first' => 'something');
else return Array('second' => 'something else');
}
我对此不太满意......虽然它在这种情况下完成了工作,但当将来发生更复杂的情况时,它不会那么适用。
有没有更好的方法来获取两个关联的多维数组并将它们组合起来而不覆盖?
EDIT:
我希望该方法可重用、可扩展,并且能够处理 2 个以上具有 2 个以上维度的数组。