fabrizio.rocca
fabrizio.rocca

Reputation: 99

How to display all array values once and in random order?

I need a PHP script for my website in order to pick (all) values from an array and display them randomly.

Every value must be shown only once.

This is the code I've written so far, the problem is that the values are not taken once.

<?php
$one = 'SITE 1<br><br>';
$two = 'SITE 2<br><br>';
$three = 'SITE 3<br><br>';
$four = 'SITE 4<br><br>';
$five = 'SITE 5<br><br>';

$array = array($one, $two, $three, $four, $five);
for ($i=0; $i<5; $i++) {
    echo $array[rand(0, count($array) - 1)] . "\n";
}
?>

You can test this code directly here: https://www.fabriziorocca.it/test/phprandom.php

Upvotes: 1

Views: 799

Answers (1)

Jo&#227;o Pinho
Jo&#227;o Pinho

Reputation: 365

You can use shuffle:

<?php
$one = 'SITE 1<br><br>';
$two = 'SITE 2<br><br>';
$three = 'SITE 3<br><br>';
$four = 'SITE 4<br><br>';
$five = 'SITE 5<br><br>';

$array = array($one, $two, $three, $four, $five);
shuffle($array);
foreach($array as $item) {
    echo $item . "\n";
}
?>

Upvotes: 3

Related Questions