所以我對面的這個代碼塊從指定的文件夾拉圖像,並與img標籤。OUPUTS他們來了問題與圖像的排序有關。PHP在數字和字母順序排序
所以,讓我的 「圖片」 文件夾中說,我有這些圖片:
2.JPG B.JPG A.JPG 1.JPG
我怎樣才能讓這個它以數字和字母順序列出圖像?我想編號的圖像是第一位的,然後,按字母順序,所以它會列出相似圖片:
1.JPG 2.JPG A.JPG B.JPG
有什麼想法就這樣做與我有的代碼?
感謝您的幫助!
所以我對面的這個代碼塊從指定的文件夾拉圖像,並與img標籤。OUPUTS他們來了問題與圖像的排序有關。PHP在數字和字母順序排序
所以,讓我的 「圖片」 文件夾中說,我有這些圖片:
2.JPG B.JPG A.JPG 1.JPG
我怎樣才能讓這個它以數字和字母順序列出圖像?我想編號的圖像是第一位的,然後,按字母順序,所以它會列出相似圖片:
1.JPG 2.JPG A.JPG B.JPG
有什麼想法就這樣做與我有的代碼?
感謝您的幫助!
你需要的是一種自然語言排序。
使用PHP函數natsort().. 這裏..
<?php
$url = "./images/";
$temp_files = scandir($url);
natsort($temp_files);
foreach($temp_files as $file)
{
if($file != "." && $file != ".." && $file != basename(__FILE__))
{
echo '<a href="'.$url.$file.'" class="lightbox" title="'.$file.'"><img src="'.$url.$file.'" alt="" /></a><br />';
}
}
?>
您可以將鏈接添加到數組中,而不是立即回顯它們。然後使用sort($array)
以正確的順序放置它們,並通過遍歷每個foreach循環來回顯它們,如:foreach($array as $image) { echo ... }
。
欲瞭解更多信息,請參見:http://php.net/manual/en/function.sort.php
我將存儲陣列中的文件名,然後用sort()
訂購陣列。有沒有更簡單的方法來做到這一點,因爲reddir只返回像這樣的文件名:
文件名按文件系統存儲的順序返回。
的scandir()
和glob()
功能可以排序的目錄內容都返回陣列,也可以繼續使用opendir/readdir()
手動構建陣列。
如果排序順序(或缺少排序順序)不是您喜歡的,那麼您可以使用任何array sorting functions來操縱順序,無論您喜歡。我傾向於喜歡natcasesort()
。
<?php
$url = "./test/";
$exclude = array('.', '..');
$files = array_diff(scandir($url), $exclude);
natsort($files);
print_r(array_values($files));
?>
輸出:
Array
(
[0] => 1.jpg
[1] => 2.jpg
[2] => a.jpg
[3] => b.jpg
)
這工作很好,謝謝你!甚至不知道這個功能存在 – 2011-03-29 21:34:52
偉大的解決方案! – 2012-08-07 14:19:26
如果我想換個角度呢?第一個字母,然後數字? – 2012-08-07 14:23:13