Jump to content


Photo

Displaying random images on page load


  • Please log in to reply
2 replies to this topic

#1 Rectifier

Rectifier
  • New Members
  • Pip
  • Newbie
  • 3 posts

Posted 09 September 2006 - 02:56 AM

I would like to be able to display 5-10 random images on a page, and have 5-10 different images displayed if the page is visited again, or reloaded.

I've got the displaying the images part done, but the randomizing is faulty. The images are displayed in a random order, but when the page is refreshed/reloaded, or visted again, they are always in the same order (say images 1,5,3,8,4 are displayed, reload, and the same images are displayed in the same order)

<?php
$pics = array("img1.jpg", "img2.jpg", "img3.jpg","img4.jpg", "img5.jpg");
shuffle($pics);
for ( $i = 0; $i < 5; $i++ )
{
echo '<img src="portfolio/' . $pics[$i] . '" border="0">&nbsp;&nbsp;';
}
?>

The shuffle(); function doesn't seem to make it randomize the elements in the array the way I want. Is there another function that does what shuffle(); does, but randomizes  the elements in the array the way I want? (Meaning, on reload it reorders the elements in the array.)

#2 jefkin

jefkin
  • Members
  • PipPipPip
  • Advanced Member
  • 55 posts

Posted 09 September 2006 - 05:15 AM



Hi Rectifier,

it sounds like you're using a PHP prior to 4.2, According to the docs, you don't need to call srand on PHP >= 4.2.0.

If your PHP is an earlier version, try this.

<?php
$numbers = range(1, 20);
srand((float)microtime() * 1000000);
$pics = array("img1.jpg", "img2.jpg", "img3.jpg","img4.jpg", "img5.jpg");
shuffle($pics);
for ( $i = 0; $i < 5; $i++ )
{
echo '<img src="portfolio/' . $pics[$i] . '" border="0">&nbsp;&nbsp;';
}
?> 

Jeff

#3 Rectifier

Rectifier
  • New Members
  • Pip
  • Newbie
  • 3 posts

Posted 09 September 2006 - 01:28 PM

Thank you Jeff!
It all works great now. :)




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users