【发布时间】:2015-07-25 11:00:01
【问题描述】:
我有一个脚本可以扫描文件夹并将其包含的文件名放入一个数组中。 然后我打乱数组并显示文件名。
像这样:
$count=0;
$ar=array();
$i=1;
$g=scandir('./images/');
foreach($g as $x)
{
if(is_dir($x))$ar[$x]=scandir($x);
else
{
$count++;
$ar[]=$x;
}
}
shuffle($ar);
while($i <= $count)
{
echo $ar[$i-1];
$i++;
}
?>
效果很好,但由于某种原因,我得到了这样的结果:
- fff.jpg
- ccc.jpg
- 数组
- nnn.jpg
- ttt.jpg
- sss.jpg
- bbb.jpg
- 数组
- eee.jpg
当然,当我刷新页面时,顺序会发生变化,因为我做了随机播放,但在 200 个文件名中,我总是在列表中的某个位置获得这 2 个“数组”。
会是什么?
谢谢
【问题讨论】:
-
glob() 更有趣
-
@Dagon blob blob 我认为那是鱼 :) 你是说 glob 吗?
-
我会寻找 glob,谢谢。同时,我想知道脚本(第一个)出了什么问题。在我的示例中,我只是“回显”文件名以使其简单,但我需要的不仅仅是这些。所以我需要将名称存储在一个数组中以备后用。我相信,无论是否是 glob,我最终都会遇到完全相同的问题。
-
如果您需要递归搜索目录,您也可以使用 SPL 库 stackoverflow.com/questions/20045622/…
-
@Baylock
./images/仅包含图像,还是包含子文件夹?您是否也需要查看其子文件夹中的图像?