2016-04-15 6 views
1

Ich habe eine Liste von sich nicht wiederholenden Zahlen; Ich muss alle diese Zahlen in einer zufälligen Weise anzeigen. Von http://www.w3schools.com/php/func_array_rand.asp lerne ich ein paar Ansätze ohne Glück. Wenn ich "array_rand" verwende, müssen alle Ausgaben in aufsteigender Reihenfolge sein; also wird meine endgültige Ausgabe immer in der Reihenfolge von 1 bis 10 ohne Zufälligkeit sein.Wie zufällig die Reihenfolge einer Liste in 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

Was meinst du mit „wenn ich' array_rand' alle Ausgänge sein müssen in aufsteigender Reihenfolge "? Könntest Du das erläutern? –

+1

1. Tipp - Verwenden Sie keine w3schools, verwenden Sie seriösere Quellen wie das PHP-Handbuch (http://php.net/manual/en/function.array-rand.php). 2. Tipp - Verwenden Sie eine "foreach" -Schleife, um Ihr Array auszudrucken – Novocaine

Antwort

6

Die shuffle Funktion wird für Sie die Reihenfolge der Elemente im Array randomisieren.

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

Verwendung 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

Die PHP Sie suchen tatsächlich ist:

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

array_rand

Picks ein oder mehrere zufällige Einträge eines Arrays und den Schlüssel zurückgibt (oder Schlüssel) der Zufalls Einträge.

shuffle

schlurft zufällig (die Reihenfolge der Elemente in) ein Array

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

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

</body> 
</html> 
Verwandte Themen