Вывод цифр без повторов

12
J
На сайте с 06.07.2011
Offline
160
1124

Скажите пожалуйста, как вывести цифры без повторов на одной странице, если к примеру 1000 кодов таких на странице.


<? echo rand(1, 90000);?>
[Удален]
#1

<?php

$min = 1;
$max = 90000;
$all = 1000;

$array = range($min, $max);

$nums = array_rand($array, $all);
shuffle($nums);

foreach($nums as $num) {
echo $array[$num].'<br>';
}
?>
J
На сайте с 06.07.2011
Offline
160
#2
web2033:
<?php

$min = 1;
$max = 90000;
$all = 1000;

$array = range($min, $max);

$nums = array_rand($array, $all);
shuffle($nums);

foreach($nums as $num) {
echo $array[$num].'<br>';
}
?>

Спасибо. А зачем <br> ? Цифры ведь в разных местах будут.

Данный код нужен для того, что бы выводить картинки: kartinka<? echo rand(1, 90000);?>.jpg

И код какой-то очень весомый.

[Удален]
#3

так ты по пятому кругу уже оказывается спрашиваешь, еще и носом крутишь тут?)

/ru/forum/900438

J
На сайте с 06.07.2011
Offline
160
#4
web2033:
так ты по пятому кругу уже оказывается спрашиваешь, еще и носом крутишь тут?)
/ru/forum/900438

:) - сейчас про обычные цифры, нужно модернизировать код

<? echo rand(1, 90000);?>

, что бы не выводил повторов.

[Удален]
#5

jano, все уже "модернизировано" и в той и в этой теме, просто ты пишешь, а не делаешь, что тебе говорят

<?php

$min = 1;
$max = 90000;
$all = 1000;

$array = range($min, $max);

$nums = array_rand($array, $all);
shuffle($nums);

foreach($nums as $num) {
echo '<img src="folder_to_images/' .$array[$num]. '.jpg" alt="картинка номер ' .$array[$num]. '">';
}
?>

Больше не отвечаю в этой теме.

K
На сайте с 03.06.2015
Offline
45
#6

Ему нужна функция, метод, по-другому ТС не понимает. А вы господа показываете действующее вещество.

---------- Добавлено 28.06.2015 в 22:23 ----------

Ну то есть метод должен сгенерить макс случайных чисел от и до, и затем выдавать по требованию следующее из массива. Или выдавать сразу тег, что еще крутее будет для ТС :)

---------- Добавлено 28.06.2015 в 22:33 ----------

Типа вот такое счастье он хочет


class RandomImage {

private $_d=array();
private $_c=0;
public $img_dir='/foo/bar/baz/';
public $img_type='.jpg';

public function __construct($min,$max,$total){
/* генератор заполняет $this->_d; */
}

public function __invoke(){
echo $this->__toString();
}

public function __toString(){
return '<img src="'.$this->img_dir.$this->_d[$this->_c++].$this->img_type.'" alt="">';
}

}

$rnd_img = new RandomImage(1, 90000,1000);

/* где-то */

$rnd_img(); /* ушло в буфер */

'</div>'.$rnd_img; /* прицепили к выводу */

Само собой чтобы итерачить надо приделывать итерачный интерфейс, или тупо выдать ему toArray( return $this->_d)

MYSQL PHP JS HTML CSS SEO TXT США СССР
Mad_Man
На сайте с 10.11.2008
Offline
162
#7
kostyanet:
class RandomImage {

private $_d=array();
private $_c=0;
public $img_dir='/foo/bar/baz/';
public $img_type='.jpg';

public function __construct($min,$max,$total){
/* генератор заполняет $this->_d; */
}

public function __invoke(){
echo $this->__toString();
}

public function __toString(){
return '<img src="'.$this->img_dir.$this->_d[$this->_c++].$this->img_type.'" alt="">';
}

}

О боги... мои глаза должны развидеть это обратно.

SI
На сайте с 03.12.2007
Offline
130
#8

<?php $x=0; ?>

...
<?php echo ++$x * 7283 % 10000; ?>
...
<?php echo ++$x * 7283 % 10000; ?>
...
<?php echo ++$x * 7283 % 10000; ?>

Повторов нет, я проверял! :)

-= Онлайн сервисы =-
K
На сайте с 03.06.2015
Offline
45
#9

Mad_Man, подробности приветствуются.

Mad_Man
На сайте с 10.11.2008
Offline
162
#10

kostyanet, слишком громоздкая конструкция с ООП явно не к месту для того, чтобы вывести случайное число в один HTML тег.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий