2010-03-10 57 views
2

我想基於他們的名字「包含」我的php文件中的最後2個文件。newbie:php如何在文件名中按文件名的順序讀取

因此,名稱是:

 
01-blahbla.php 
02-sdfsdff.php 
03-aaaaaaa.php 
04-bbbbbbb.php 
05-wwwwwwi.php 

,我只希望包括05和04,因爲他們的名字與最大數字開始。

我該如何繼續這樣做?

+0

與*「包括」最後的2文件在我的PHP文件*你的意思是你想包括從一個文件夾到PHP文件?或者你有一個PHP文件中的文件列表? – Gordon 2010-03-10 22:43:20

回答

3

假設只存在文件夾中的編號的文件,你可以使用

$files = glob('/path/to/files/*.php'); // get all php files in path 
natsort($files);      // sort in natural ascending order 
$highest = array_pop($files);   // get last file, e.g. highest number 
$second = array_pop($files);   // again for second highest number 
0

將目錄內容列入數組。 使用內置的PHP排序函數對該數組進行排序。 對數組的前兩個元素執行require_once()。

1

把值在數組中,反向排序它使用rsort()然後取前兩個:

$values = array('01-blahbla.php', '02-sdfsdff.php', '03-aaaaaaa.php', '04-bbbbbbb.php', '05-wwwwwwi.php'); 
rsort($values); 
$file1 = $values[0]; 
$file2 = $values[1]; 
require_once $file1; 
require_once $file2; 

php.net的PHP手冊提供了各種排序方法的一些很好的信息。

更新:

由於Psytronic指出,rsort不換號工作,但你可以創建自定義功能,可以輕鬆地做同樣的事情:

function rnatsort(&$values) { 
    natsort($values); 
    return array_reverse($values, true); 
} 
$files = rnatsort($values); 
+0

rsort不起作用,因爲它不會按數字排序,即100在20之前。 – Psytronic 2010-03-10 22:51:20