何をソートするかわからない非常に柔軟なものを構築しています。これは、私が取り組んでいる 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 が認識されていないためです。グローバル変数を定義することもできますが、その解決策はあまりにもひどいものです。
何か案は?