2013-05-08 3 views
0
for($i = 1; $i <= 5; $i++) 
{ 
    echo $i . ','; 
} 

Продукция: 1,2,3,4,5случайная величина Внутри Looping

Как случайный порядок результата, как это:

1,3,5,2,4 or 5,3,2,1,4 or 4,2,1,3,5 and so on.. 

1 upvote на лучшее ответ. :-)

Спасибо!

+1

как о HTTP: // php.net/manual/en/function.shuffle.php – japesu

+0

Никаких исследований. –

+2

Если вы зацикливаетесь без причины и только нужны случайные, просто используйте 'rand() & 5;' и '1 upvote для лучшего ответа. :-) 'звучит как хорошее предложение –

ответ

2

Было бы проще всего создать массив первых:

$numbers = range(1, 5); 

А затем перетасовать его:

shuffle($numbers); 

Затем для печати:

echo join(',', $numbers); 
2

Попробуйте

function rand_num($min, $max, $quantity) { 
    $numbers = range($min, $max); 
    shuffle($numbers); 
    return array_slice($numbers, 0, $quantity); 
} 

print_r(rand_num(1,5,5)); 

Выход

Array ([0] => 4 [1] => 3 [2] => 1 [3] => 2 [4] => 5) 

Codepad

+0

это будет гарантировать и распечатать 5 случайных чисел, но не 5 различных случайных чисел – 75inchpianist

+0

@ 75inchpianist См. Отредактированный ответ. Теперь вы можете удалить ваш downvote .. :) –

+0

плохо удалить его, но я думаю, что ваш ответ не очень прост для такой простой проблемы – 75inchpianist

1

Вы хотите распечатать рандомизированное набор, поэтому первый заполнить массив с значениями

for ($i=1;$i<=5;$i++){ 
    $array[$i]=$i; 
} 

Так что теперь он может выглядеть как {1,2,3,4,5]

затем перетасовать его

shuffle($array); 

теперь может выглядел как {2,4,5,3,1} затем распечатать

for ($i=1;$i<=5;$i++){ 
    echo $array[$i].','; 
    } 

производит 2,4,5,3,1 yay!

затем отпразднуйте, танцуя в нижнем белье перед зеркалом.

+0

Хорошее усилие, но слишком много заданий повторения. –