2011-12-18 31 views
0

我正在處理的API只允許我按月訪問數據。有時候,數據跨越2個月,但沒有簡單的測試來檢查這一點。在PHP中加入2個陣列

我已經循環查找結果數據以查找我需要的數據。我想我可以在兩個月內調用API兩次,並在另一個月追加1個月。

我想弄清楚如何將2個數組連接在一起。這裏有一個例子,我有:

firstMonth = array(0 => object0, 1 => object1, 2 => object2) 
secondMonth = array(0 => object3, 1 => object4, 2 => object5) 

,我需要加入他們的行列,所以我有一個數組,如:

bothMonths = array(0 => object 0, 1 => object1, 2 => object2, 3 => object3, 4 => object4, 5 => object5) 

所以,我怎麼能參加我的2個陣列?

+2

@BookOfZeus:這不會幫助,我想你的意思是array_merge – greg0ire 2011-12-18 22:14:09

+0

哦耶!我誤解了這個問題! – 2011-12-18 22:15:56

回答

2

array_merge();

如果輸入的數組中有類似相同的字符串鍵,那麼該鍵的後面的值將覆蓋前一個鍵。但是,如果數組包含數字鍵,則後面的值不會覆蓋原始值,但會被追加。

-2

使用PHP的array_merge功能:

$bothMonths = array_merge($firstMonth, $secondMonth); 
+2

由於索引,這不起作用。 -1 – greg0ire 2011-12-18 22:12:33

+0

我很困惑。這不正是你剛纔所說的,只是舉個例子嗎? – MrGlass 2011-12-18 22:22:54

+0

現在是。在編輯帖子之前,他們建議你使用[數組聯盟](http://php.net/manual/en/language.operators.array.php) – adlawson 2011-12-18 22:28:02

0

試試這個:

function zip() { 
    $args = func_get_args(); 
    $zipped = array(); 
    $n = count($args); 
    for ($i=0; $i<$n; ++$i) { 
     reset($args[$i]); 
    } 
    while ($n) { 
     $tmp = array(); 
     for ($i=0; $i<$n; ++$i) { 
      if (key($args[$i]) === null) { 
       break 2; 
      } 
      $tmp[] = current($args[$i]); 
      next($args[$i]); 
     } 
     $zipped[] = $tmp; 
    } 
    return $zipped; 
} 

$bothMonths = zip($firstMonth, $secondMonth); 

print_r($bothMonths); 

到拼音/ Python /哈斯克爾/ ...壓縮功能,這是你想要的