1
我有一個由4個字段組成的數組。使用GET變量對數組進行排序..沒有排序
$retval[] = array(
"name" => "$dir$entry/",
"type" => filetype("$dir$entry"),
"size" => 0,
"lastmod" => filemtime("$dir$entry")
);
我要排序此陣列取決於變量,它包含任一4區域的1(例如:類型,名稱等)
$sortBy = $_GET['sortBy'];
這個函數應使用$ sortBy變量:
function compare_field($a, $b){
return strnatcmp($a["'.$sortBy.'"], $b["'.$sortBy.'"])
}
,被稱爲是這樣的:
usort($retval, "compare_field");
但是建設不起作用..
希望有人能指出我在正確的方向,是我明顯的newby。
有趣。感謝您的意見。我試過你的解決方案,但$ sortBy仍然沒有使用。如果我替換爲「名稱」它可以工作,但是當我使用$ sortBy時,沒有任何反應。並且$ sortBy的名字是相同的... – Sam
我使用舊代碼工作,但確實沒有引號,並且使$ sortBy成爲全局的。像你指出的範圍問題的東西..但顯然你的解決方案仍然有範圍問題?好奇你對它的想法.. – Sam
'$ sortBy'需要在與你調用'usort'相同的範圍內可用。除非聲明該函數的地方有權訪問此變量,否則不能將'$ sortBy'傳遞給匿名函數。如果你在全局函數(即函數或方法)以外的範圍調用'usort',那就是爲什麼它不起作用。我需要看到更多的代碼才能確定 –