我在这个论坛上整天搜索但是找不到任何答案。
我使用以下php代码在每个页面加载中显示myfile.txt
的下一行(遍历整个文件时循环):
<?php
session_start();
$item = file("myfile.txt");
$itemCount = count($item);
if ($_SESSION['sess_row'] === NULL) {
$_SESSION['sess_row'] = 0;
} else {
$_SESSION['sess_row'] = ($_SESSION['sess_row'] + 1) % $itemCount;
}
echo $item[$_SESSION['sess_row']];
?>
现在我希望在每次会话之前将myfile.txt
中的行重新排列。
例如,如果myfile.txt
包含5行,则现在每个会话以相同顺序显示行:123451234512345...
使用随机播放时,它应显示一个会话:325413254132541...
,另一个会话:413254132541325...
,另一个会话:142351423514235...
,依此类推。
如何在每次会话之前将上述代码更改为随机播放myfile.txt
?
答案 0 :(得分:0)
每次使用shuffle来重新排列数组。
$item = file("myfile.txt");
shuffle($item);
如果您需要为每个用户设置不同的号码,您应该拥有一个数据库或其他东西(它可能只是一个包含一个号码的文件)来跟踪已经分配给用户的项目数量。每次,读取该数字(称之为光标),分配与该光标关联的数字,将光标递增1并将其写回文件(或数据库......)
答案 1 :(得分:0)
如果您需要唯一数据,可以使用array_unique:
$item = file("myfile.txt");
$item = array_unique($items);
shuffle($item);