объединение / объединение двух массивов - PullRequest
2 голосов
/ 29 апреля 2010

У меня есть два таких массива, на самом деле это данные MySQL, полученные с двух разных серверов:

$array1 = array ( 
                  0 => array ( 'id' => 1, 'name' => 'somename') ,
                  1 => array ( 'id' => 2, 'name' => 'somename2') 
);
$array2 = array ( 
                  0 => array ( 'thdl_id' => 1, 'otherdate' => 'spmethings') ,
                  1 => array ( 'thdl_id' => 2, 'otherdate' => 'spmethings22') 
);

как я могу объединить / объединить массив, чтобы он выглядел так

$new_array = array ( 
         0 => array ( 'id' => 1, 'name' => 'somename', 'otherdate' => 'spmethings') ,
         1 => array ( 'id' => 2, 'name' => 'somename2', 'otherdate' => 'spmethings22') 
);

Ответы [ 4 ]

2 голосов
/ 29 апреля 2010

Что-то в этом роде + проверьте, если их размеры одинаковы, если хотите ..

$res = array()
for ( $i = 0; $i < count($array1); ++$i )
{
  $res[] = array_merge($array1[$i], $array2[$i]);
}
1 голос
/ 29 апреля 2010

Как INNER JOIN? Вам придется сделать это вручную. Я знаю, что в PHP есть довольно много экзотических функций, но, насколько я знаю, никто не делает то, что вы хотите.

Подумайте "сортировка вставок". Отсортируйте оба массива и пройдитесь по ним. Объединяйте строки по ходу движения.

0 голосов
/ 29 апреля 2010
$new_array = array($array1, $array2);
0 голосов
/ 29 апреля 2010

Возможно, я не так понимаю, но это то, что вы ищете?

for ($i = 0; $i < count($array1); $i++){
    $new_array[$i] = array_merge($array1[$i], $array2[$i]);
    unset($new_array[$i]['thdl_id']); //since i'm assuming this is a duplicate of 'id'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...