随机选择整个文件夹


Randomise Whole Folders

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

我已经考虑过使用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来创建网站。

谢谢。

您的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";
    }
}