2016-10-14 5 views
0

他の2つの配列から配列を作成しようとしています。私は彼らがループの外でマージされる問題を抱えています。複数の配列をループ外でマージするにはどうすればよいですか?

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

I:次の出力を生成するために

print_r($alldogs); 

:私のような配列を作成することができますどのように

$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>'; 
    } 

:ここ

は2つの配列を作成するためのコードですarray_merge($ red、$ blue)を試しましたが、値を取得していないようです。

ご協力いただきまして誠にありがとうございます。

+0

'$は$ =赤+ $ブルースを合併;' –

+0

'$櫛= array_merge($赤、$ブルース)。 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

関連する問題