下面的代码扫描当前文件夹中的word文档,然后吐出一个所有找到的数组......
<?php
$a=array();
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if(preg_match("/\.doc$/", $file))
$a[]=$file;
}
closedir($handle);
}
foreach($a as $i){
echo $i;
}
?>
这一切都很好,但订单不是我想要的。有没有办法按文件名对结果进行排序?我查看了sort函数,但无法弄清楚如何在我的情况下实现它。
答案 0 :(得分:5)
您可以使用glob()
自动为您排序:
$files = glob('*.doc');
有关详细信息,请参阅PHP on glob()。
如果订单不是预期订单,请传递参数GLOB_NOSORT
以按照它们在目录中出现的顺序返回文件。
答案 1 :(得分:4)
您可以使用sort()
它就地操作,因此您不会将排序的数组作为返回值。
<?php
$a=array();
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if(preg_match("/\.doc$/", $file))
$a[]=$file;
}
closedir($handle);
}
sort($a);
foreach($a as $i){
echo $i;
}
?>