我有一个函数,它在多维数组中排序数据,如下所示:
$data = array();
$data[] = array("name" => "James");
$data[] = array("name" => "andrew");
$data[] = array("name" => "Fred");
function cmp($a, $b)
{
return strcasecmp($a["name"], $b["name"]);
}
usort($data, "cmp");
var_dump($data);
?>
当我运行这个,它按预期工作,返回按名称排序的数据,升序。但是,我需要在类中使用这个。
class myClass
{
function getData()
{
// gets all data
$this -> changeOrder($data);
}
function changeOrder(&$data)
{
usort($data, "order_new");
}
function order_new($a, $b)
{
return strcasecmp($a["name"], $b["name"]);
}
}
?>
当我使用这个,我得到以下警告:警告:usort()期望参数2是一个有效的回调,函数’order_new’未找到或无效的函数名称。
当我把order_new函数在changeOrder函数它工作正常,但我有致命错误的问题:不能redeclare order_new(),所以我不能使用它。有什么建议么?