2015-02-11 2 views
0

У меня есть модель в моем 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']); 
    } 

я называю ее из одной и той же модели, только в другом методе, как так:

usort($srv_records, 'comp_primary') 

сообщение об ошибке я получаю:

Серьезность: Предупреждение -> usort() ожидает параметр 2 является действительным обратного вызова, функция «comp_primary» не найден или недопустимое имя функции /var/www/html/widgets/manager/models/widget_model.php 187

Я пытался изменить функцию подписи на comp_primary выглядеть следующим образом:

private function comp_primary($a, $b) 

Я также попытался изменить способ я называю это, например, так:

usort($srv_records, '$this->comp_primary'); 

или

usort($srv_records, $this->comp_primary); 

Можете ли вы рассказать мне, что мне не хватает? Благодаря!

+1

Пожалуйста, проверьте этот http://stackoverflow.com/questions/12197345/sort-associative-array-codeigniter -php –

+0

@u_mulder, это бесполезный комментарий. 1. Первым аргументом считается массив. 2. Пришло ли вам в голову, что люди, возможно, пробовали прочитать руководство и спрашивают, потому что они не понимают? Если вы потратите время на комментарии, укажите полезный ответ. в противном случае, не беспокойтесь. – dot

+0

спасибо @shuvo. если вы хотите опубликовать ответ, я соглашусь. Благодарю. – dot

ответ

7

Пожалуйста, попробуйте с этим:

usort($srv_records, array($this,'comp_primary')); 

Для получения дополнительной информации, пожалуйста, см the docs

+0

Работал как шарм. Благодарю. – Maximus

Смежные вопросы