2017-05-31 3 views
-3

3つの配列に異なる値があります。PHP - 配列のRAND値

各配列からランダムな値を選択し、その値を別の配列に追加します。

何らかの理由で、最初の配列の値が毎回追加されます!

$targets = 3; 
$singles = array('1', '2', '3', '4'); 
$doubles = array('Double 1', 'Double 2', 'Double 3', 'Double 4'); 
$trebles = array('Treble 1', 'Treble 2', 'Treble 3', 'Treble 4'); 
$tasks = array('Any Red', 'Any Green', 'Any Treble', 'Any Double'); 

$game_card = array(); 

for($i=0; $i < $targets; $i++) 
{ 
    $single_number = array_rand($singles); 
    $game_card[] = $single_number; 

    $double_number = array_rand($doubles); 
    $game_card[] = $double_number; 

    $treble_number = array_rand($trebles); 
    $game_card[] = $treble_number; 
} 
+3

たぶん 'array_rand()'あなたはそれが必要だと思うもの以外の何かを返しますか?キーと同じように? – AbraCadaver

+2

array_randは、VALUEではなくKEYを返します。 (ここでのキーは、インデックスであり、最初の配列の値のように見えます) – Jeff

+1

すべての配列は0,1,2または3を返します。 – AbraCadaver

答えて

0

array_rand() KEY not the VALUEを返します。ここで重要なのは、索引です。インデックスは、整数で、最初の配列の値のように見えます。

だから、あなたが望むものである:

$single_number = array_rand($singles); 
$game_card[] = $singles[$single_number]; 

$double_number = array_rand($doubles); 
$game_card[] = $doubles[$double_number]; 

....