2

特定のフォルダーに次のような順序でファイル名を取得したい1つのコアphpファイルがあります。多くのファイルがありますが、各ファイル名はfilename_0、filename_1、filename_2のようにこのようになっているため、フォルダー内のファイル名をフェッチするときはいつでも適切な順序ではなく、filename_0、filename_2、filename_1 を取得しています..

    $dir_path="/var/lib/myproject";
        $folder=dir("$dir_path");
                    $j=0;$allfilename='';
                    while($folderEntry=$folder->read())
                    {
                        if($folderEntry == '.' || $folderEntry == '..' )
                        {
                        continue;
                        }else{
echo "Path of directory is>>>>>>>>".$folderEntry;
                        $allfilename[]=$folderEntry;
                        $j++;
                        }
                    }
  $folder->close();

ファイル名を取得できますが、順序を取得できないため、任意の順序で filename_0 がインクリメントされてファイル名が続行されます ..... したがって、昇順でファイル名を取得する方法は誰でもわかります。

4

2 に答える 2

3

ファイル名配列はいつでもnatsortできます。

natsort($allfilename);

ここでfilename_1は、前にあると考えたいと思うかもしれないので、自然ソートが必要であることに注意してくださいfilename_100。別のオプションは、ソート機能を使用することです。

sort($allfilename, SORT_NATURAL);
于 2012-11-01T06:46:37.650 に答える
1

配列値を並べ替えるために使用できますsort()(つまり、配列内のファイル名を並べ替えます)

sort($allfilename);

http://php.net/manual/en/function.sort.php

アップデート:

インデックスを保持したい場合は、使用しますasort

asort - 配列をソートし、インデックスの関連付けを維持します

asort($allfilename);
于 2012-11-01T06:45:32.973 に答える