类中的 usort 函数
2022-08-30 10:09:45
我有一个函数,可以在多维数组中对数据进行排序,如下所示:
<?php
$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);
?>
当我运行这个时,它按预期工作,返回按名称排序的数据,升序。但是,我需要在类中使用它。
<?php
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函数中时,它工作正常,但我遇到了致命错误的问题:无法重新声明order_new(),所以我不能使用它。有什么建议吗?