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

对从 glob 返回的数组使用shuffle

使用 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 回答