2010-11-22 10 views
7

Mam proste tablicę takiego:Proste PHP random array

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

i chcą powtórzyć jedną z wartości losowo. Zrobiłem to wcześniej, ale nie pamiętam, jak to zrobiłem i wszystkie przykłady array_rand wydają się bardziej skomplikowane niż to, czego potrzebuję.

Czy można uzyskać pomoc? Dzięki

Odpowiedz

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

array_rand() zwraca klucz, więc musimy podłączyć go z powrotem do $input aby uzyskać wartość.

+0

jak pokazać tylko jeden wynik, który jest losowy? – thevoipman

4

Complex? Czy jesteśmy na tym samym manual page?

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

Żadne przykłady na php.net nie były na topie za to, co chciałem, gdy wszystko, czego chciałem, było czymś prostym. – Cameron

+0

@Cameron, który jest przeznaczony: To jest klucz tablicy. Użyj '$ input [$ rand_key]' aby uzyskać dostęp do elementu –

+0

Jeśli * 0 * jest wybranym klawiszem losowym, jest to wybrany losowy klucz. Co z tym? – KingCrunch

2

array_rand pomoże ci wybrać losowy klucz tablicy. Stamtąd możesz uzyskać wartość.

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

Tylko jedna funkcja: array_rand().

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

Powyższy przykład waiwai933 nie ma wartości 1, ale jest taki sam jak kod. co robi 1? – Cameron

+0

@Cameron zajrzyj do instrukcji. 'Jeśli wybierasz tylko jedną pozycję, funkcja array_rand() zwraca klucz losowy. W przeciwnym razie zwraca tablicę kluczy dla losowych wpisów. Odbywa się to w taki sposób, że można wybierać klucze losowe, a także wartości z tablicy. " –

+0

Argument * 1 * jako drugi jest wartością domyślną, więc można go pominąć. – KingCrunch

3

Możesz użyć opcji shuffle(), a następnie wybierz pierwszy element.

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

Ale chciałbym iść z metodą array_rand().