|
|
|
| Здравствуйте!
Задача - формирование строки состоящей и трех случайных чисел, выбранных в заданном промежутке. Вроде чего-то там понаписал, но иногда вместо 3 формируется 2 или 4 числа в строке! Ошибка скорее всего где-то в логике, сижу туплю понять не могу. Вот собственно что есть:
$random_id_array = array();
for ($i=1; $i<=3; $i++)
{
$random_num = rand (2,12);
array_push ($random_id_array,$random_num);
}
$random_id_array = array_unique($random_id_array);
$count = count($random_id_array);
if ($count<3)
{
$skolko_nado= 3 - $count;
for ($i=0; $i<=$skolko_nado; $i++)
{
$random_num = rand (2,12);
array_push ($random_id_array,$random_num);
$random_id_array = array_unique($random_id_array);
}
}
$random_id_str = implode(",",$random_id_array);
echo $random_id_str;
|
Понимаю, что написанно не оптимально, если кто поможет буду признателен!
Заранее спасибо! | |
|
|
|
|
|
|
|
для: diez
(24.11.2009 в 00:25)
| | Э-э...
$num1 = rand (2,12);
$num2 = rand (2,12);
$num3 = rand (2,12);
echo $num1.$num2.$num3;
|
Нет? | |
|
|
|
|
|
|
|
для: diez
(24.11.2009 в 00:25)
| | надо уникальные значений?
может так:
<?
for($random_num=array(); sizeof($random_num)<3; ) {
$num = rand(2,12);
if(in_array($num, $random_num))
continue;
$random_num[] = $num;
}
$random_id_str = implode(',', $random_num);
echo $random_id_str;
?>
|
| |
|
|
|
|
|
|
|
для: а-я
(24.11.2009 в 00:52)
| | Спасибо!!! | |
|
|
|