2011-12-30 36 views
7

Hãy nói rằng tôi đã có ba biến: -Vang vọng ra một biến ngẫu nhiên

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

Làm thế nào tôi sẽ echo một ngẫu nhiên một lên trang, như tôi muốn có module này trong thanh bên trang web của tôi sẽ thay đổi trên mỗi lần làm mới, ngẫu nhiên?

Trả lời

16

Nơi chúng vào một mảng và chọn từ nó một cách ngẫu nhiên với rand(). Các giới hạn số được chuyển đến rand() bằng 0 cho phần tử thấp hơn, làm phần tử đầu tiên trong mảng và một phần tử nhỏ hơn số phần tử trong mảng.

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

Ví dụ:

$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 

Hoặc nhiều hơn nữa đơn giản, bằng cách gọi array_rand($array) và qua kết quả trở lại như một chìa khóa mảng:

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

Oh cảm ơn bạn :) – Frank

8

Sử dụng một mảng:

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

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

nhưng đây không phải chỉ là sẽ trở thành lời nói, Nó sẽ là html khá nặng. Vì vậy, tôi có thể thay thế 'Đầu tiên' bằng biến' $ đầu tiên' và khai báo nó ở trên mã và đặt nó thành một giá trị không? – Frank

+3

Bạn có thể đặt bất cứ thứ gì bạn muốn vào một mảng. Nhưng nếu bạn đang đổ "html" nặng vào một biến thể, bạn có thể muốn xem xét lại thiết kế của mình. –

+0

Và do đó bạn có nghĩa là gì? – Frank

3

Tại sao không sử dụng array_rand() cho việc này:

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

Tạo ra một giá trị ngẫu nhiên tốt hơn, bạn có thể sử dụng mt_rand().

Ví dụ:

$first = "Hello"; 
    $second = "Evening"; 
    $third = "Goodnight!"; 
    $array = array($first, $second, $third); 
    echo $array[mt_rand(0, count($array) - 1)]; 
Các vấn đề liên quan