随机整个文件夹

时间:2012-09-08 12:59:28

标签: php random

我正在为心理学研究员创建实验,参与者必须完成各种任务。我被要求随机化文件夹的顺序,但保持目录内文件的顺序相同。

我已经看过使用glob(),但我认为我的实施错了。

我的目录如下所示:

时钟
>> 任务1 /文件。
>> 任务2 /文件。
>> 任务3 /文件。

目前我有这个:

    <?php
    function random_folders($dir = 'Clock')
    {
        $folder = glob($dir. '/Task.*');
        $folderRand = array_rand($folder);
        return $folder[$folderRand];
    }
    echo random_folders();
    ?>

我已经尝试使用谷歌搜索和使用stackoverflow搜索解决方案,但我似乎无法找到一个,任何帮助将不胜感激。

修改 我应该提一下,我正在使用HTML5,JavaScript,PHP和MySQL来创建网站,如果这是相关的。

感谢。

1 个答案:

答案 0 :(得分:1)

您的glob()有点偏差。您不希望在.之前使用*。然后使用shuffle()来改组它们:

function random_folders($dir = 'Clock')
{
    $folder = glob($dir. '/Task*');
    shuffle($folder);
    // Returns the randomized array of folders
    return $folder;
}

$random_folders = random_folders();
// List them and their contents:
foreach ($random_folders as $rf) {
  echo "Folder: $rf\n";
  // List files in ascending order
  $files = scandir($rf, SCANDIR_SORT_ASCENDING);
  foreach ($files as $f) {
    if ($file !== "." && $file !== "..") {
      echo $file . "\n";
    }
}