2010-11-22 4 views
7

J'ai un simple tableau comme ceci:réseau aléatoire PHP simple

$input = array('Line1', 'Line2', 'Line3'); 

et que vous voulez faire écho à l'une des valeurs au hasard. Je l'ai déjà fait mais je n'arrive pas à me rappeler comment je l'ai fait et tous les exemples de array_rand semblent plus complexes que ce dont j'ai besoin.

Une aide peut-elle être utile? Merci

Répondre

18
echo $input[array_rand($input)]; 

array_rand() renvoie la clé, nous devons donc le brancher de nouveau dans $input pour obtenir la valeur.

+0

Comment pouvons-nous montrer un seul résultat aléatoire? – thevoipman

4

Complexe? Sommes-nous sur le même manual page?

$rand_key = array_rand($input, 1); 
+1

Les exemples sur php.net n'étaient pas exacts pour ce que je voulais quand tout ce que je voulais était quelque chose de simple. – Cameron

+0

@Cameron c'est prévu: C'est la clé de tableau. Utilisez '$ input [$ rand_key]' pour accéder à l'élément –

+0

Si * 0 * est la clé aléatoire sélectionnée, il s'agit de la clé aléatoire sélectionnée. Quel est le problème avec ça? – KingCrunch

2

array_rand vous aidera à sélectionner une clé aléatoire d'un tableau. De là, vous pouvez obtenir la valeur.

$randKey = array_rand($input); 
echo $input[$randKey]; 
2

Juste une seule fonction: array_rand().

echo $input[array_rand($input,1)]; 
+0

L'exemple ci-dessus par waiwai933 n'a pas le 1 mais produit la même chose que votre code. que fait le 1? – Cameron

+0

@Cameron regarder dans le manuel. 'Si vous ne sélectionnez qu'une seule entrée, array_rand() renvoie la clé pour une entrée aléatoire. Sinon, il renvoie un tableau de clés pour les entrées aléatoires. Ceci est fait pour que vous puissiez choisir des clés aléatoires ainsi que des valeurs hors du tableau. » –

+0

Le * 1 * comme deuxième argument est la valeur par défaut, donc vous pouvez l'omettre. – KingCrunch

3

Vous pouvez utiliser shuffle(), puis sélectionner le premier élément.

shuffle($input); 
echo $input[0]; 

Mais je voudrais aller avec la méthode array_rand().