2016-09-30 441 views
-2
function randomNumbers ($start,$end,$quantity){ 
     $numbers = range($start, $end); 
     shuffle($numbers); 

     return array_slice($numbers,0,$quantity); 
    }   
    $array=(randomNumbers(1,10,30));//calling a function 
    print_r($array);// printing the output 

問題是,我只得到10個數字不是30,因爲我想。使用php生成1到10之間的30個隨機數

+0

那麼你基本上試圖從10個元素的數組中獲得30個元素。所以你可能不想使用'array_splice()'而不是'array_rand()'。 – Rizier123

回答

0

你只得到10號與該行

$numbers = range($start, $end); // Get 1..10 range 

所以array_slice只能得到10個號碼。您可以成才嘗試這樣的(也許它不是最好的代碼,但是可以幫助你)

function randomNumbers ($start,$end,$quantity){ 
    $numbers = array(); 
    for ($i=0; $i<$quantity/($end-$start); $i++) 
     $numbers = array_merge($numbers, range($start, $end)); 
    shuffle($numbers); 

    return array_slice($numbers,0,$quantity); 
} 
0

你可以試試這個方法來生成一系列的1內的30個隨機數到10

for($i = 0 ; $i < 30; $i++){ 
$num[$i] = rand(0,10); 
} 

echo '<pre>'; 
print_r($num); 
echo '</pre>'; 
+0

_你可以試試這個不是解釋.. – dbf