2011-11-22 103 views
0

在下面的函數中,我看到按alpha排序數組。但是,它返回bool(true)而不是實際的排序數組。我錯過了什麼?

function get_dirs($dir) { 
    $array = array(); 
    $d = dir($dir); 
    while (false !== ($entry = $d->read())){ 
     if($entry!='.' && $entry!='..') { 
      $entry2 = $dir."/".$entry; 
      if(is_dir($entry2)) { 
       $array[] = $entry; 
      } 
     } 
    } 
    $d->close(); 
    //return $array; THIS WORKS FINE BUT UNSORTED 
    return natcasesort($array); //THIS RETURNS A BOOLEAN? 
    } 
+0

是的,因爲它返回一個布爾! http://php.net/natcasesort – Mob

回答

3

natcasesort返回TRUE或FALSE的失敗。

變化

return natcasesort($array); 

natcasesort($array); 
return $array; 
2

是。正如手冊所述:

成功返回TRUE或失敗返回FALSE。

看一看在手冊頁函數簽名:

布爾natcasesort(陣列& $陣列)

&符號的意思是 「參考」,所以$array被修改,而不是返回一個新的數組。這與所有(IIRC)PHP排序功能相同。

你應該做的排序和然後回報$array:成功

natcasesort($array); 
return $array; 
1

natcasesort排序數組,如果失敗成功返回true和false。通過排序數組然後返回來解決它。

natcasesort($array); 
return $array;