簡體   English   中英

排序子目錄列表

[英]Sort list of sub-directories

我有兩個問題:

1)我使用下面的代碼輸出文件夾“ issues”中包含的子目錄列表。 每個子目錄都是一個數字。 我想按增加的值對輸出進行排序,所以1、2、3、4、5、6、7、8、9、10、11,... 20、21等。

我怎樣才能做到這一點?

<?php

chdir('issues');
$d = dir(".");

echo "<ul>";

while (false !== ($entry = $d->read()))
{
 if (is_dir($entry) && ($entry != '.') && ($entry != 'sponsors') && 
 ($entry != '..'))
 echo "<li><a href='{$entry}'>{$entry}</a></li>";
}

echo "</ul>";

$d->close();

?>

2)在同一頁面的其他部分,我還想輸出指向最新發行版的鏈接,即具有最高編號的子目錄。 我該怎么做?

謝謝!

將scandir()與array_slice一起使用可獲取目錄內容的排序數組。

如推薦的那樣,使用sort進行准確的數字排序。

$directory = 'issues';
$contents = array_slice(scandir('issues'), 2);
$sub_dirs = array();
foreach($contents as $c){
   $path = $directory."/".$c;
   if(is_dir($path) && $c !== 'sponsors'){
      $sub_dirs[] = $c;
   }
}
asort($sub_dirs, SORT_NUMERIC);
$latest = end($sub_dirs);
reset($sub_dirs);
echo '<ul>';
foreach($sub_dirs as $sub){
   echo '<li><a href="'.$directory.'/'.$sub.'">'.$sub.'</a></li>';
}
echo '</ul>';
echo '<a href="'.$directory.'/'.$latest.'">'.$latest.'</a>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM