以下代码位于一个本身位于类中的函数中.其目的是避免每个$ filter值有一个排序函数:
$GLOBAL['filter'] = $filter;
usort($this->data, function($arr1, $arr2) {
return ($arr1[$GLOBALS['filter']] > $arr2[$GLOBALS['filter']]) ? 1 : -1;
});
Run Code Online (Sandbox Code Playgroud)
我的解决方案完美无缺,但我发现它相当不优雅.有人有想法在不诉诸$ GLOBALS变量的情况下实现同一目标吗?
谢谢你的主张