2010-04-08 4 views
2

Quelqu'un at-il une idée de la raison pour laquelle shuffle() ne renvoie qu'un seul élément?php shuffle() renvoie un élément

lors de l'utilisation:

$array2 = shuffle($array1); 

avec le tableau suivant (tableau1 $):

Array 
(
    [0] => 1 
    [1] => 5 
    [2] => 6 
    [3] => 7 
    [4] => 8 
    [5] => 10 
    [6] => 11 
    [7] => 12 
    [8] => 13 
    [9] => 14 
) 

La sortie de:

print_r($array2); 

est simplement:

Une idée de la raison pour laquelle non seulement il ne mélangerait pas le tableau, mais éliminerait les 9 éléments restants dans le tableau?

merci!

Répondre

7

shuffle() remet le tableau en place et renvoie true s'il a réussi. Si vous voulez $array2 être une version brassé de $array1, d'abord en faire une copie de $array1 puis appelez shuffle($array2);

Voir les docs: shuffle

+0

Alors, quel est le point de le mélanger si ça va juste retourner vrai/faux? – mike

+1

Je ne pense pas que vous comprenez. Il mélange * en place *. Si vous avez imprimé '$ array1' au lieu de' $ array2' dans votre code, vous auriez obtenu une version mélangée. –

+0

Vous avez raison. Je n'ai pas compris. Fait parfaitement sens! Merci! – mike

1

S'il vous plaît lire une description de fonction avant d'utiliser http://php.net/shuffle il peut fonctionner autre que vous vous attendez.

2

shuffle modifie la matrice d'origine. Donc, dans votre cas, le tableau mélangé est $array1.

$array2 est simplement une valeur booléenne. La fonction renvoie true ou false.

1
$array2 = $array1; 
shuffle($array2); 
print_r($array2); 
Questions connexes