У меня есть запрос, который я запускаю несколько раз с разными параметрами. Я использую синтаксический анализатор xml, чтобы возвращать результаты в jQuery.объединить два (или более ..) многомерных массива в php
Я не могу найти способ объединить результаты на первом «узле», не перезаписывая первую запись.
Упрощенный пример кода:
$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;
или ...
$data = returnArray(0);
$data += returnArray(1);
печатает Array ([data] => Array ([first] => something))
или ...
$data = returnArray(0);
$data .= returnArray(1);
print_r($data);
печатает 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');
}
Что я не все, что доволен ... Хотя он получает работу в этом случае, это не будет все, что применимо в будущем, когда возникает более сложная ситуация.
Есть ли лучший способ взять два ассоциативных многомерных массива и объединить их без перезаписи?
РЕДАКТИРОВАТЬ:
Я хотел бы способ для повторного использования, расширяемый и иметь возможность обрабатывать массивы 2+ с 2+ размерами.
Вы хотите передать их с помощью функции первого, чтобы определить содержимое массива, а затем объединить их? –