2011-06-15 47 views
0
$dir = $_SERVER['DOCUMENT_ROOT'] . '/images/myfav/'; 
$dirFiles = scandir($dir); 
foreach ($dirFiles as $k => $v) 
{ 
    if (is_dir($dir . "/" . $v) && $v != '.' && $v != '..') 
    { 
     if (($files = @scandir($dir . "/" . $v)) && (count($files) > 2)) 
     { 
      $link = strtolower(str_replace(' ','-',$v)); 
      echo '<a href="/myfav/' . $link . '" title="' . $v . '"'; 
      if ($_GET['subpage'] == $link) echo ' class="selected"'; 
      echo '><span>' . $v . '</span></a>';  
     } 
    } 
} 

我使用上面的腳本列出了目錄,現在有一個要求出現了,我需要按照自定義順序顯示這些目錄。有些人有優先權,應顯示在其他人之前。什麼是使用scandir自定義目錄列表的順序的最佳方法

什麼是最好的方式來實現這一點。

一種方法,我認爲可以在每個目錄前按照順序添加數字,並使用腳本分割數字並執行某種順序。

然而,其他方式可以在腳本中使用精確的目錄名稱和順序數字來定義數組,並且基於這一點,我們可以掃描導演並以某種方式在腳本中修改現有數組中的順序?

+0

Scandir是必須的,還是可以改變它? – Yoshi 2011-06-15 14:05:15

+0

我可以改變它。取決於解決方案。現在我通過在每個目錄名稱前面添加數字並在腳本中將其分解並將其分配到新數組中然後進行鍵排序來實現此目的。對此有什麼更好的想法? – Developer 2011-06-15 14:21:18

回答

0

而不是回顯它們,將代碼寫入數組,將值作爲數組鍵排序。然後使用ksort()或其他PHP排序函數之一對數組進行排序,然後以新排序的順序打印數組。

+0

感謝spudley,這就是我目前正在做的。有沒有更好的解決方案。任何其他最好的方式來實現這一點。 – Developer 2011-06-15 14:18:19

相關問題