3

私は心理学の研究者のために実験を作成している最中です。参加者が完了しなければならないさまざまなタスクが関係しています。フォルダの順序をランダム化するように求められましたが、ディレクトリ内のファイルの順序は同じにしてください。

使用することを検討しまし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を使用してWebサイトを作成していることに言及する必要があります。

ありがとう。

4

1 に答える 1

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";
    }
}
于 2012-09-08T13:03:42.450 に答える