Php 如何在每次会话之前洗牌文件?

Php 如何在每次会话之前洗牌文件?,php,shuffle,Php,Shuffle,我在这个论坛上搜索了一整天,但没有找到任何答案 我使用以下php代码在每个页面加载上显示myfile.txt的下一行(遍历整个文件时循环): 现在,我想在每次会话之前洗牌myfile.txt中的行 例如,如果myfile.txt包含5行,它现在会在每个会话中以相同的顺序显示行:123451234512345… 使用shuffle时,它应该显示一个会话:3254132541…,另一个会话:413254132541325…,另一个会话:1423514235…,依此类推 如何在每次会话之前将上述代

我在这个论坛上搜索了一整天,但没有找到任何答案

我使用以下php代码在每个页面加载上显示
myfile.txt
的下一行(遍历整个文件时循环):


现在,我想在每次会话之前洗牌
myfile.txt
中的行

例如,如果
myfile.txt
包含5行,它现在会在每个会话中以相同的顺序显示行:
123451234512345…

使用shuffle时,它应该显示一个会话:
3254132541…
,另一个会话:
413254132541325…
,另一个会话:
1423514235…
,依此类推

如何在每次会话之前将上述代码更改为shuffle
myfile.txt

用于每次洗牌数组

$item = file("myfile.txt");
shuffle($item);

如果您需要为每个用户指定不同的编号,那么您应该有一个数据库或其他东西(可能只是一个包含一个编号的文件)来跟踪有多少项已分配给用户。每次读取该数字(称之为游标),分配与该游标相关联的数字,将游标递增一,然后将其写回文件(或数据库…)

如果需要唯一数据,可以使用:


每次会话或页面的每次刷新?您不应该洗牌文件,而应该洗牌输出。你考虑过Concurrent用户吗?db的效率要高出10亿倍对不起,我试过了,但在shuffle($item)中它不起作用;它显示简单随机:353321411213551。。。我的目标是在所有行都经过之前不要显示同一行两次。这是另一个你不能通过随机选择来解决的问题。我在我的答案中添加了更多关于这一点的信息。
$item = file("myfile.txt");
shuffle($item);
$item = file("myfile.txt");
$item = array_unique($items);
shuffle($item);