2016-04-15 62 views
1

我有一個不重複的數字列表;我需要以隨機的方式顯示所有這些數字。從http://www.w3schools.com/php/func_array_rand.asp我學到了一些沒有運氣的方法。如果我使用「array_rand」,所有輸出必須按遞增順序排列;所以我的最終輸出將始終按照從1到10的連續順序進行,並且沒有隨機性。如何隨機在PHP中列表的順序

<!DOCTYPE html> 
<html> 
<body> 

<?php 
$a=array(1,2,3,4,5,6,7,8,9,10); 
$random_keys=array_rand($a,10); 
echo $a[$random_keys[0]]."<br>"; 
echo $a[$random_keys[1]]."<br>"; 
echo $a[$random_keys[2]]."<br>"; 
echo $a[$random_keys[3]]."<br>"; 
echo $a[$random_keys[4]]."<br>"; 
echo $a[$random_keys[5]]."<br>"; 
echo $a[$random_keys[6]]."<br>"; 
echo $a[$random_keys[7]]."<br>"; 
echo $a[$random_keys[8]]."<br>"; 
echo $a[$random_keys[9]]."<br>"; 
?> 

</body> 
</html> 
+2

你說的「如果我使用'array_rand'所有的輸出必須是指按遞增順序「?你能澄清嗎? –

+1

第一技巧 - 不要使用w3schools使用更多信譽良好的資源,如PHP手冊(http://php.net/manual/en/function.array-rand.php)。第二技巧 - 使用'foreach'循環打印出你的數組 – Novocaine

回答

6

shuffle函數將爲您隨機化數組中元素的順序。

$a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 
shuffle($a); 
echo implode('<br>', $a); 
1

使用php array shuffle

<!DOCTYPE html> 
<html> 
<body> 

<?php 
$a=array(1,2,3,4,5,6,7,8,9,10); 

print_r($a); 

shuffle($a); 

echo "<br/>"; 

print_r($a); 

?> 

</body> 
</html> 
2

你實際上是在尋找的PHP是:

$a = array(1,2,3,4,5,6,7,8,9,10); 
shuffle($a); 
foreach($a as $n){ 
    echo "$n<br>"; 
} 

array_rand

精選的一個或多個隨機出的數組,並返回隨機條目的鍵(或鍵)。

shuffle

洗牌(隨機化的元素的順序)一個數組

0
<!DOCTYPE html> 
<html> 
<body> 

<?php 
$numbers = range(1, 10); 
shuffle($numbers); 
foreach ($numbers as $number) { 
    echo "$number<br>"; 
} 
?> 

</body> 
</html>