2011-12-30 15 views
7

Powiedzmy miałem trzy zmienne: -Powtarzając się zmiennej losowej

$first = "Hello"; 
$second = "Evening"; 
$third = "Goodnight!"; 

Jak bym echo losowo jeden na stronie, jak chciałbym mieć ten moduł w mojej stronie paska bocznego, które mogłyby zmienić na każde odświeżenie, losowo?

Odpowiedz

16

umieścić je na tablicy i wybrać z niej losowo z rand(). Granice liczbowe przekazane do rand() wynoszą zero dla niższego, jako pierwszego elementu w tablicy, i o jeden mniej niż liczba elementów w tablicy.

$array = array($first, $second, $third); 
echo $array[rand(0, count($array) - 1)]; 

Przykład:

$first = 'first'; 
$second = 'apple'; 
$third = 'pear'; 

$array = array($first, $second, $third); 
for ($i=0; $i<5; $i++) { 
    echo $array[rand(0, count($array) - 1)] . "\n"; 
} 

// Outputs: 
pear 
apple 
apple 
first 
apple 

lub znacznie prościej, wywołując array_rand($array) i przekazując wynik z powrotem jako klucz tablicy:

// Choose a random key and write its value from the array 
echo $array[array_rand($array)]; 
+0

Och, dziękuję :) – Frank

8

pomocą tablicy:

$words = array('Hello', 'Evening', 'Goodnight!'); 

echo $words[rand(0, count($words)-1)]; 
+0

ale nie są one po prostu będzie słowa, to będzie dość ciężki html. Czy mogę zastąpić 'First' zmienną' $ first' i zadeklarować ją powyżej kodu i ustawić wartość? – Frank

+3

Możesz umieścić wszystko, co chcesz w tablicy. Ale jeśli rzucasz "ciężki" html w zmienną, powinieneś rozważyć swój projekt. –

+0

I przez to masz na myśli co? – Frank

3

Dlaczego nie wykorzystać array_rand() na to:

$values = array('first','apple','pear'); 
echo $values[array_rand($values)]; 
1

Wygeneruj lepszą losową wartość, którą możesz użyć mt_rand().

Przykład:

$first = "Hello"; 
    $second = "Evening"; 
    $third = "Goodnight!"; 
    $array = array($first, $second, $third); 
    echo $array[mt_rand(0, count($array) - 1)];