本文介绍了为什么不是natsort(或natcasesort)在这里工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

也许我做一些令人尴尬的问题,但为什么没有这个数组进行排序?

Perhaps I'm doing something embarrassingly wrong, but why isn't this array being sorted?

$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);

我似乎得到我得到相同的结果时,我并不试图对数组在所有排序。 排序()的作品,但没有别的似乎。

I seem to be getting the same results I get when I don't attempt to sort the array at all. sort() works, but nothing else seems to.

感谢您的帮助!

更新:

下面是抽样的结果:

使用的没有排序的:

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

使用排序()

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的结果看起来像那种的。

I expect at the very least for natsort's results to look like sort's.

推荐答案

natcasesort 维护键/值的关系,因此,如果您遍历数组在使用一个索引,你会看到这一行为。

natcasesort maintains the key/value relationship, so if you are iterating over the array with an index, you will see this behavior.

尝试的print_r($ narray) natcasesort 。可以使用的foreach遍历数组。

Try print_r($narray) after natcasesort. You can iterate the array using foreach.

foreach ($narray as $elem)
{
   /* operate on $elem */
}

这篇关于为什么不是natsort(或natcasesort)在这里工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-12 14:27