2016-09-30 279 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