array_randで要素が数字の場合の処理方法
PHPのarray_randについて教えて下さい。
下記のようなソースを作りましたが思った通りの結果になりません。
//(A)
$test=array(3,5,8,11,14,24,26,28);
print_r($test);
foreach ($test as $val)
{
echo $val.'<br>';
}
//(B)
$keys = array_rand($test, 5);//決められた数を抽出
print_r($keys).'<br><br>';
foreach ($keys as $val)
{
echo $val.'<br>';
}
Aの部分の結果は
Array ( [0] => 3 [1] => 5 [2] => 8 [3] => 11 [4] => 14 [5] => 24 [6] => 26 [7] => 28 )
foreachの部分の出力↓
3
5
8
11
14
24
26
28
となりこれは特に問題ありません。
Bの部分でAの配列から5つランダムで取り出したいのですが、結果は
Array ( [0] => 0 [1] => 3 [2] => 5 [3] => 6 [4] => 7 ) 0
foreachの部分の出力↓
0
3
5
6
7
となってしまい、Aの配列の添え字の中から5つの数字が選ばれるようになってしまいます。
Aの添え字ではなく「3,5,8,11,14,24,26,28」の数字から5つランダムで取り出すにはどのような書き方をすればよいのでしょうか?
ご回答よろしくお願い致します。
お礼
すばらしいです。こんな関数があったんですね。 PHPは本当に配列にすればなんでも来いですね(^^) ありがとうございます。 P.S IDに爆笑してしまいました(^^)