[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод рандомного массива постранично
quickxyan
накидал скриптец - он как макет моей ситуации.


<?php
for ($i = 0; $i < 30; $i++)
$a[] = $i;

shuffle($a);
if(isset($_GET['num']))
{
if ($_GET['num'] == 1)
{
$start = 0;
$final = 15;
}
if ($_GET['num'] == 2)
{
$start = 16;
$final = 30;
}

}

for($i = $start; $i < $final; $i++)
echo $a[$i].' ';
echo '<br>';
?>

<a href = "form.php?num=1">1</a>
<
a href = "form.php?num=2">2</a>



вопрос: при обновлении моей страницы или переходе на другую - срабатывает функция shuffle которая перемешивает массив и каждый раз выводяться совершенно рандомные значения. как сделать, что бы массив перемешался только один раз и при обновлении страницы и переходе на другую не перемешивался опять?
то есть у меня есть исходный массив. я беру его перемешиваю и больше не трогаю, а только вывожу, то что есть!
кто знает помогите пожалуста



Спустя 35 минут, 11 секунд (21.02.2011 - 11:15) quickxyan написал(а):
придмал, что можно как-то можно проверять исходный массив с перемешанным и если они разные, то уже не перемешивать, но вот в код это как-то не выливается (

Спустя 38 минут, 23 секунды (21.02.2011 - 11:53) Snus написал(а):
quickxyan
Либо
echo '<input type="hidden" value="'.implode(',', $array).'" name="array">';

Либо пиши в сессию свой массив.

Спустя 1 минута, 28 секунд (21.02.2011 - 11:54) jogal написал(а):

<?php
$items = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
$pages = array_chunk($items, 5);
$outpage = '';


if(isset($_GET['page']) && is_numeric($_GET['page'])) { $pagenum =$_GET['page']; $out = $pages[$_GET['page']]; }
else { $pagenum = 0;$out = $pages[0];}

// Можно добавить кеш для shuffle
if(!is_file('cache/' . $pagenum)) {
//Добавляем в кеш

shuffle($out);
foreach($out as $result) {
$outpage .= $result . '<br/>';
}

$fp = fopen('cache/' . $pagenum, 'a');
fwrite($fp, $outpage);
fclose($fp);
} else {
$outpage = trim(file_get_contents('cache/' . $pagenum));
}

//выводим страницу
echo $outpage;
?>

Спустя 33 минуты, 2 секунды (21.02.2011 - 12:27) quickxyan написал(а):
те же яйца только в профиль)

я вроде как бы уже придумал - кто знает как можно передать массив на другую страницу, кроме сессий

Спустя 4 минуты, 31 секунда (21.02.2011 - 12:32) quickxyan написал(а):
Snus, спасибо. сначала не заметил твоей записи )

Спустя 2 минуты, 10 секунд (21.02.2011 - 12:34) Snus написал(а):
quickxyan
Не за что. Ну как разбить обратно на массив, я думаю, ты догадался smile.gif

Спустя 10 минут, 34 секунды (21.02.2011 - 12:45) linker написал(а):
После перемешивания добавляй в сессию флаг, говорящий о том, что массив не нуждается в перемешивании, потом тупо проверяй его наличие.

Спустя 5 минут, 11 секунд (21.02.2011 - 12:50) quickxyan написал(а):
Snus, да разбить догадался как))

linker, спасибо очень хорошая идея


_____________
печатаю со скоростью 320 минут в знак...

плюсуем карму не стесняемся
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.