如何检索随机文件夹?

时间:2012-10-27 14:52:30

标签: php random

我有三个文件夹,每个文件夹各有40个任务。我必须随机化这些文件夹,我通过使用shuffle($folder)然后将其存储在会话数组中来完成。

但我发现的问题是如何在之后检索它们,例如当用户点击开始实验时:

它将进行第一次试验,此时它将查看第一个数组,然后它将从switch语句中选择正确的文件夹,它将开始测试。

但是我在第二个和第三个文件夹时遇到问题,因为每次我都无法将文件夹指向指定位置时它们会被随机化。

我知道这听起来很混乱,所以如果你需要更多细节,请告诉我。我还没有发布代码并且有很多,但如果有人想看到我到目前为止所做的事情,我将设置一个Dropbox链接,以便您可以查看各种文件。

https://www.dropbox.com/sh/l98z3mzk4cd2105/qxz09lWOM9

编辑:

谢谢你们所有帮助过的人,我还没有完全解决它,但这个建议肯定有帮助。谢谢。当我设法让它工作时,我会发布一个完整的更新。

3 个答案:

答案 0 :(得分:2)

如果不了解你如何实施你所解释的内容,很难回答你的问题。

因此,您正在改组文件夹名称数组,并且您希望用户以随机顺序访问随机文件夹或所有三个文件夹?

你为什么要去第二和第三个文件夹?

您需要更具体地了解您正在尝试做什么,以及您的实施出了什么问题。

编辑:Madara Uchiha理解你的意思。我不确定你是否连续访问所有3个文件夹(在这种情况下你可以在洗牌后使用foreach循环遍历$ folder),或者每次用户提交表单时访问一个随机的唯一文件夹。如果是后者,那么Madara Uchiha已经回答了你的问题:)

编辑:你能这样做吗?

shuffle($folder);
foreach($folder as $element)
{
    // $element is your random folder
    // ...
}

您只需浏览每个文件夹一次,直到循环结束。您可以拥有任意数量的文件夹。它只是循环遍历数组中的每个元素。

答案 1 :(得分:0)

开始测试后,轻松删除$folders数组中使用的条目。这样,即使它被重新随机化,你也不会重复。:)

答案 2 :(得分:0)

我有替代解决方案。

$folders = array(
                array("foldername"=>"folder1","folderpath"=>"path_to_folder1"),
                array("foldername"=>"folder2","folderpath"=>"path_to_folder2"),
                array("foldername"=>"folder3","folderpath"=>"path_to_folder3"),


);

$randomFolderNo = rand(0,2);

$selectedFolder = $folders[$randomFolderNo];

echo $selectedFolderName = $selectedFolder['foldername'];
echo $selectedFolderPath = $selectedFolder['folderpath'];

您可以在SESSION数组中使用$ folder数组。