我正试图根据数组中的值对数组进行排序。我试过以下
function comp($a, $b)
{
return strcmp($a["name"], $b["name"]);
}
在我的函数类中,但当从同一类调用它时
$usersInSection = $userManager->getUsersInSection($section);
usort($usersInSection, "conp");
我收到的消息
usort()要求参数2是一个有效的回调,函数"comp"找不到或函数名无效
如果你的comp在一个类中,那么它就是一个方法。
要在同类方法中使用它,您需要这样调用:
usort($usersInSection, array($this, "comp"));
在类内使用回调调用usort的语法为:
usort($usersInSection, array("MyClass", "comp"));
查看PHP手册:回调/可调用
看起来usort($usersInSection, "conp")
中有一个拼写错误。您的函数称为comp
,而不是conp
。
在我的函数类中
所以您有一个类来保存辅助函数(?),因此comp
实际上是该类的方法?
然后,您必须将类名或类实例(对于非静态方法)传递给usort
,方法与call_user_func_array
手册中描述的相同。