I have 6 html files (test1.html, test2.html, test3.html and so on) and I want 3 of them to be randomly displayed with no duplicates. Then each time the web page is loaded a different order and file will be used.
Say: test1.html, test4.html, test2.html
Or: test5.html, test2.html, test3.html
Or: test3.html, test6.html, test2.html
etc.... with no duplicates
I have got this php code from a previous question which is a good start. It only includes 1 html file where I need 3?
<?php
$files = glob('*.html');
$random_file = $files[array_rand($files)];
include($random_file);
?>
Load in random .html file with PHP?
Any help is much appreciated, thanks.
Based on your example above.
$i = 0;
while($i < 3) {
$randInt = rand(1, 6);
if(isset($used)) {
while($a < 1) {
if(array_search($randInt, $used)) {
$a++;
} else {
$randInt = rand(1, 6);
continue;
}
}
}
include_once("path/to/test$randInt.html");
$used[] = $randInt;
$i++;
}
Based on AD7six's idea, this is much more succinct and also allows the use of non-numerical file names:
$files = array(
1=>'file_foo.html',
2=>'file2_bar.html',
3=>'file3_make.html',
4=>'file4_it.html',
5=>'file5_more.html',
6=>'file6_succinct.html');
shuffle($files);
for($i=0;$i<3;$i++) {
include_once("path/to/$files[$i]");
}