2017-02-15 3 views
2

array_rand()から0が返されるのはなぜですか?どうすれば0にフィルタリングできますか?私はちょうど1-20を得たいと思う。array_randなぜ0(1、20)の範囲になるのですか

$range = range(1, 20); 
$total = array(); 
for($i = 0; $i < 100; $i++){ 
    shuffle($range); 
    array_push($total, array_rand($range, 3)); 
} 
+0

私は0を得確実ので、私は、なぜ0 –

答えて

2

array_rand()配列からキーを返し、range()0の開始キーを持つ配列を構築しました。実際の値を使用

$range = array_combine($range = range(1, 20), $range); 

または値としてキーを治療することはない:試してみてくださいしかし

$range = array_flip(range(1, 20)); 

、あなたはまだarray_rand()の必要は、ちょうどから3スライスない配列をシャッフルしています開始:

$range = range(1, 20); 

for($i = 0; $i < 100; $i++){ 
    shuffle($range); 
    $total[] = array_slice($range, 0, 3); 
} 
+0

この作業を取得するかわからない、どうもありがとうございました!! –

関連する問題