我正在构建一些非常灵活的东西,它不知道它会分类什么。这是我正在研究的REDIS的一部分。无论如何,我需要通过用户定义的键对数组进行排序。所以这个:
var $sortme=Array(
"a"=>array("name"=>"john","yearofbirth"=>2000),
"b"=>array("name"=>"andre","yearofbirth"=>1994))
我想通过“名字”或“年度出生”对此进行排序。要按名称排序,我使用:
uasort($sortme,function($a,$b){return strcmp($a["name"],$b["name"]);}
但我希望能够按任意键排序,以使事情尽可能灵活。我的第一次尝试就是这个,但那不起作用:
$sortby="name";
uasort($sortme,function($a,$b){return strcmp($a[$sortby],$b[$sortby]);}
它不起作用的原因是在sort函数中不知道$ sortby。我可以为它定义一个全局变量,但这个解决方案太可怕了。
有什么想法吗?
答案 0 :(得分:3)
$key = 'yearofbirth';
uasort($sortme,
function($a,$b) use ($key){
return strcmp($a[$key],$b[$key]);
}
);