array_rand prende elementi casuali diversi?

ciccioroky

Nuovo Utente
31 Lug 2012
25
0
1
Ciao a tutti,
come da titolo vorrei essere sicuro sul fatto che array_rand prende elementi TUTTI DIVERSI da un array.

Oppure prende elementi solo a caso e non si cura se qualcuno lo ha già preso?

grazie mille
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
array_rand estrae a caso una o più chiavi dell'array, in funzione del secondo parametro impostato, se non metti il secondo parametro estrae casualmente una chiave sola
ora dipende da quello che devi fare, se vuoi mescolare l'array come un mazzo di carte usa shuffle()
PHP:
<?php
$a=array('a','b','c','d');
echo "<pre>";
var_dump($a);
$b=array_rand($a,3);
var_dump($b);//mostra 3 chiavi estratte a caso
echo "</pre>";
?>
PHP:
<?php
$a=array('a','b','c','d');
echo "<pre>";
var_dump($a);
shuffle($a);
var_dump($a);//mostra l'array mescolato in ordine casuale ogni volta diverso
echo "</pre>";
?>
entrambe le funzioni non estraggono/mescolano due volte lo stesso elemento
 

ciccioroky

Nuovo Utente
31 Lug 2012
25
0
1
Facendo così

$rand_numeri = array_rand($array_cifre, 10);

questa right estrae dall'array array_cifre 10 elementi diversi a caso?
 

ciccioroky

Nuovo Utente
31 Lug 2012
25
0
1
se ho un array

$ciccio[0] = 'cicccio';
$ciccio[1] = 'ciccia';
.......

gli indici sono 0 e 1 giusto?

Secondo quello che mi dici array_rand mi da a caso questi indici.

poi con una nuova riga di codice php gli faccio mostrare a schermo l'elemento giusto?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
si gli indici (o chiavi) sono, in questo caso, 0 e 1
due cose
il secondo parametro deve essere minore o uguale di quanti elementi è formato l'array
se non lo scrivi è come se fosse 1 (estrai una sola chiave)
il valore che ritorna la funzione è un intero se estrae un unico valore, un array di numeri interi se ne estrai due o più