PHP usort - 找不到函数"comp"或函数名称无效



我正试图根据数组中的值对数组进行排序。我试过以下

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手册中描述的相同。

最新更新