codeigniter模型无法找到usort例程.

dot*_*dot 1 php sorting codeigniter usort

我在我的codeigniter应用程序中有一个模型,其中包含usort使用的以下回调函数:

    function comp_primary($a, $b) 
    {
            if ($a['pri'] == $b['pri']) {
                    return $a['weight'] - $b['weight'];
            }
            return strcmp($a['pri'], $b['weight']);
    }
Run Code Online (Sandbox Code Playgroud)

我从同一个模型中调用它,只是使用不同的方法:

 usort($srv_records, 'comp_primary')
Run Code Online (Sandbox Code Playgroud)

我得到的错误信息是:

严重性:警告 - > usort()期望参数2是有效的回调,找不到函数'comp_primary'或函数名无效/var/www/html/widgets/manager/models/widget_model.php 187

我试图将comp_primary上的函数签名更改为如下所示:

private function comp_primary($a, $b)
Run Code Online (Sandbox Code Playgroud)

我也尝试改变我称之为的方式,如下所示:

 usort($srv_records, '$this->comp_primary');
Run Code Online (Sandbox Code Playgroud)

要么

  usort($srv_records, $this->comp_primary);
Run Code Online (Sandbox Code Playgroud)

你能告诉我我错过了什么吗?谢谢!

Suv*_*ker 11

请试试这个:

usort($srv_records, array($this,'comp_primary'));
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档