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