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',那就是为什么它不起作用。我需要看到更多的代码才能确定 –