2010-04-28 122 views
2

我有两个阵列这样的,实际上这是从两个不同的服务器检索的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') 
); 
+0

这是什么逻辑? 'thdl_id'去哪了? – 2010-04-28 21:06:25

+0

我们可以假设他们都是按顺序排列并且包含相同的ID吗? – 2010-04-28 21:10:14

+0

@皮卡 - 我认为thdl_id和'id'是一样的。 – 2010-04-28 21:10:40

回答

0

这可能是我misunderstandi ng,但这是你在找什么?

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' 
} 
2

类似的东西+检查,如果它们的大小,如果你想的一样..

$res = array() 
for ($i = 0; $i < count($array1); ++$i) 
{ 
    $res[] = array_merge($array1[$i], $array2[$i]); 
} 
+0

不错。我会添加$ number = min(count($ array1),count($ array2));然后在循环中做$ i <$数字 – 2010-04-28 21:09:07

+0

随意。 :))) – hsz 2010-04-28 21:09:57

1

Like an INNER JOIN?你必须手动完成。我知道PHP有很多奇特的功能,但是据我所知,没有人会做你想做的。

认为“插入排序”。对两个数组进行排序并对其进行排序随时合并行。

0
 
$new_array = array($array1, $array2);