2016-10-14 51 views
0

我想從2個其他數組中創建一個數組。我有一個問題讓他們合併在他們的循環之外。如何在循環之外合併多個數組?

這裏是構建2個陣列的代碼:

$redDogs = '3'; 
$blueDogs = '2'; 

$i = 1; 
// build red dogs array 
$redDogs = (int)$redDogs; 
while($i <= $redDogs) { 
    $reds[] = 'red_dog_' . $i++; 
} 

    foreach ($reds as $red) { 
     print '<pre>'; print_r($red); print '</pre>'; 
    } 

$j = 1; 
// build blue dogs array 
$blueDogs = (int)$blueDogs; 
while($j <= $blueDogs) { 
    $blues[] = 'blue_dog_' . $j++; 
} 

    foreach ($blues as $blue) { 
     print '<pre>'; print_r($blue); print '</pre>'; 
    } 

如何可以創建這樣的數組:

print_r($alldogs); 

爲了產生以下輸出:

Array { 
    [0] => red_dog_1 
    [1] => red_dog_2 
    [2] => red_dog_3 
    [3] => blue_dog_1 
    [4] => blue_dog_2 
} 

我嘗試過array_merge($ red,$ blue),但似乎沒有得到任何值。

任何幫助,非常感謝。

+0

'$ merged = $ reds + $ blues;' –

+0

'$ comb = array_merge($ reds,$ blues); var_dump($ comb);' –

+0

'array_merge'返回新的合併數組。所以如果你只是自己調用'array_merge($ red,$ blue)',它不會做任何事情。取決於你想做什麼,一個聯合('+')也可以工作。不同之處在於聯盟不會覆蓋現有密鑰和合並意願。同時合併將附加數字鍵,重新索引,而聯盟將跳過他們在相同的地方。 –

回答

1
$redDogs = '3'; 
$blueDogs = '2'; 

$i = 1; 
// build red dogs array 
$redDogs = (int)$redDogs; 
while($i <= $redDogs) { 
    $reds[] = 'red_dog_' . $i++; 
} 

$j = 1; 
// build blue dogs array 
$blueDogs = (int)$blueDogs; 
while($j <= $blueDogs) { 
    $blues[] = 'blue_dog_' . $j++; 
} 

print_r(array_merge($reds, $blues)); 

在循環數組之前合併數組。

您的foreach語句將您的數組轉換爲字符串。

+1

包括解釋爲什麼你的示例代碼回答這個問題比只是發佈一些代碼總是更好。 –

+0

對不起...編輯和評論。謝謝 – tonyshawjr