【发布时间】:2011-03-24 20:22:30
【问题描述】:
也许我做错了令人尴尬的事情,但为什么这个数组没有被排序?
$narray=array();
$dir_handle = @opendir($path.$projectFolder) or die("Unable to open $path$projectFolder");
$i=0;
while($file = readdir($dir_handle)) {
$filenameSplit = explode('.',$file);
if ($file != "." && $file != ".." && $filenameSplit[0] != "logo" && $filenameSplit[1] != "zip" && $filenameSplit[1] != "pdf" && $filenameSplit[1] != "doc" && $filenameSplit[1] != "psd" && $filenameSplit[1] != "") {
$narray[$i]=$file;
$i++;
}
}
natcasesort($narray);
当我根本不尝试对数组进行排序时,我似乎得到了相同的结果。 sort() 有效,但似乎没有其他效果。
感谢您的帮助!
更新:
以下是示例结果:
没有排序:
03_piper_file-manager_02.jpg
05_piper_login-page_02.jpg
02_piper_file-manager_no-slides_01.jpg
04_piper_file-manager_02.jpg
01_piper_file-manager_no-slides_01.jpg
sort():
01_piper_file-manager_no-slides_01.jpg
02_piper_file-manager_no-slides_01.jpg
03_piper_file-manager_02.jpg
04_piper_file-manager_02.jpg
05_piper_login-page_02.jpg
使用natsort() 或natcasesort():
03_piper_file-manager_02.jpg
05_piper_login-page_02.jpg
02_piper_file-manager_no-slides_01.jpg
04_piper_file-manager_02.jpg
01_piper_file-manager_no-slides_01.jpg
我希望至少 natsort 的结果看起来像 sort 的。
【问题讨论】:
-
也许数组已经排序了?结果通常是按字母顺序排列的,尽管它取决于操作系统。
-
您能否向我们展示一下您使用
natcasesort获得了什么样的结果,以及您的期望? -
您有一些示例数据吗?或者,给定 $narray 的一些设置,你得到了什么,你期望得到什么?
-
我在帖子中添加了一些示例结果。谢谢!
-
出于好奇,natcasesort的返回值是多少?
标签: php arrays sorting natsort