我正在构建一些非常灵活的东西,它不知道它会排序。这是我正在研究的 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]);}
它不起作用的原因是 $sortby 在 sort 函数中不知道。我可以为它定义一个全局变量,但这个解决方案太可怕了。
有任何想法吗?