0

私はこの単純な行を持っています:

       $images = glob($directory . "*.html");

次のようなファイルのリストを返します。
例: 1

17001400300120110004600.html
17001400300120110004700.html
17001400300120110004800.html
17001400300120110004900.html
17001400300120110005000.html

問題は、順序付きリストが必要ないことです。次のようなランダムなリストが必要です。

例 2

17001400300120110004700.html
17001400300120110005000.html
17001400300120110004900.html
17001400300120110004600.html
17001400300120110005800.html

フラグを試してみましNOSORT ( $images = glob($directory . "*.html", GLOB_NOSORT); )たが、最初の例のように順序付きリストを返します。

ランダムリストを取得するにはどうすればよいですか?

4

2 に答える 2

7

グロブから返された配列でシャッフルを使用します。

nosort を使用しても配列はランダムになりません。ドキュメントに記載されているように、名前でソートするのではなく、ディレクトリに表示される順序で読み取るだけです。

GLOB_NOSORT - ディレクトリに表示されるファイルを返します (並べ替えなし)

参照として配列を使用することに注意してくださいshuffle。これを行う必要があります。

$images = glob($directory . "*.html");
shuffle($images);
于 2012-12-29T09:07:42.667 に答える
-1
$images = shuffle(glob($directory . "*.html"));
于 2012-12-29T09:08:37.413 に答える