2010-04-28 149 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);