darbyp Posted May 7, 2014 Share Posted May 7, 2014 i have gotten some code which will go through a directory and sub directory and get the image files then echo them into html code. I want 16 random images to be displayed (random on page refresh) the code i have do far <?php $di = new RecursiveDirectoryIterator('images'); foreach (new RecursiveIteratorIterator($di) as $filename => $file) { if (substr($file, -1) != ".") { echo '<div class="four columns"><img src="'. $file . '" style="width:100%; height=auto;"/></div>'; }; }; ?> How would I incorperate to get the random 16 images? like say i have 35 pictures within a directory? Thank you Quote Link to comment https://forums.phpfreaks.com/topic/288322-random-image/ Share on other sites More sharing options...
cyberRobot Posted May 7, 2014 Share Posted May 7, 2014 You could store the image information in an array and then use array_rand() to get a random selection: http://www.php.net/manual/en/function.array-rand.php Quote Link to comment https://forums.phpfreaks.com/topic/288322-random-image/#findComment-1478646 Share on other sites More sharing options...
QuickOldCar Posted May 7, 2014 Share Posted May 7, 2014 Can also shuffle() the array then display 16 in a for loop, ($image['0'] to $image['15']) $image_array = array(); $di = new RecursiveDirectoryIterator('images'); foreach (new RecursiveIteratorIterator($di) as $filename => $file) { if (substr($file, -1) != ".") { $image_array[] = $file; } } shuffle($image_array); for($i = 0; $i <=15; ++$i) { echo "<div class='four columns'><img src='". $image_array[$i] . "' style='width:100%; height=auto;'/></div>"; } Quote Link to comment https://forums.phpfreaks.com/topic/288322-random-image/#findComment-1478650 Share on other sites More sharing options...
Solution darbyp Posted May 8, 2014 Author Solution Share Posted May 8, 2014 thank you both for your help. Been trying to get my head around it. Works really nicely now Thanks again Quote Link to comment https://forums.phpfreaks.com/topic/288322-random-image/#findComment-1478677 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.