Мне было интересно, является ли приведенный ниже код наиболее эффективным использованием переменных сеанса в PHP.
<?
session_start();
if (!isset($_SESSION['count']) || !isset($_SESSION['randomArray'])) {
$count = 0;
$randomArray = array();
$sql="SELECT youtubeurl FROM Foodlist";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){
array_push($randomArray,$row['youtubeurl']);
}
shuffle($randomArray);
$_SESSION['randomArray'] = $randomArray;
$_SESSION['count'] = $count;
} elseif ($_SESSION['count'] >= sizeof($_SESSION['randomArray'])){
$_SESSION['count'] = 0;
$randomArray = $_SESSION['randomArray'];
shuffle($randomArray);
$_SESSION['randomArray'] = $randomArray;
} else{
$randomArray = $_SESSION['randomArray'];
$count = $_SESSION['count'];
echo $randomArray[$count];
$_SESSION['count']++;
}
?>
Цель кода должна быть очевидной, если я сделал это правильно.Но в основном существует список (randomArray) строк, который проходит один раз.После каждого полного прохода список перемешивается.Каждый элемент печатается один раз, прежде чем какой-либо отдельный элемент будет напечатан дважды.
Итак, это самый эффективный способ сделать это?