Non ne ho idea delle motivazioni e non ho voglia di andare a leggermi il manualeOriginariamente inviato da W Thunderbird
La funzione array_rand() secondo me non funziona bene.
A volte crea un array che tra i risultati ha un 0 anche se l'array tra cui ha operato la scelta non lo contiene.
Ad esempio:
Si nota subito che nella settima posizione si trova uno zero che non è contenuto nell'array di partenza.Codice PHP:
//Array di partenza
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 11 [11] => 12 [12] => 13 [13] => 14 [14] => 15 [15] => 16 [16] => 17 [17] => 18 [18] => 19 [19] => 20 )
//Array scelto dalla funzione array_rand() impostata per scegliere 10 elementi
Array ( [0] => 18 [1] => 16 [2] => 7 [3] => 19 [4] => 9 [5] => 15 [6] => 12 [7] => 0 [8] => 11 [9] => 8 )
Questo fatto capita spesso anche per array più lunghi.
Che si un bug grave della funzione array_rand() ?
in ogni caso
Codice PHP:
<pre>
<?php
$min = 1;
$max = 30;
$num = 10;
$array = range($min, $max);
print_r($array);
shuffle($array);
array_splice($array, $num);
print_r($array);
?>
</pre>