2015-06-19 08:52:18 5416次浏览 5条回答 1 悬赏 20 金钱
public function actionIndex(){
    $student = Student::model()->findAll();
    usort($student,'sortByCreateTime');
}

public function sortByCreateTime($a,$b){
    return $a->create_time>$b->create_time?1:-1;
}

这样写报找不到该方法的错误?有人知道怎么用吗?

最佳答案

  • 回答于 2015-06-19 09:32 举报

    试试

    public function actionIndex(){
        $student = Student::model()->findAll();
        usort($student,'sortByCreateTime');
    
        $sortByCreateTime = function($a, $b){...};
    }
    
    1 条回复
    回复于 2015-06-19 09:40 回复
    $user = User::model()->findAll(array('limit' => 10));
    usort($user, 'sortByCreateTime');
    $sortByCreateTime = function ($a, $b) {
        return $a->create_time > $b->create_time ? 1 : -1;
    };
    

    usort() expects parameter 2 to be a valid callback, function 'sortByCreateTime' not found or invalid function name 还是报这个错误

  • 回答于 2015-06-19 09:58 举报
    bool usort(array &$array,callback $cmp_function);
    

    没用过这函数,看了一下手册,不知道是不是第一个参数要传引用。

    3 条回复
    回复于 2015-06-19 10:10 回复

    数组前面加&直接报错

    回复于 2015-06-19 10:17 回复

    $a是数组的话,应该是用$a['create_time'],你要排序也可以直接查数据的时候直接排序啊

    回复于 2015-06-19 10:40 回复

    现在是对象数组,而且数组里有两种对象。

  • 回答于 2015-06-19 13:04 举报

    \usort($student,'sortByCreateTime');

  • 回答于 2018-12-07 15:01 举报

    函数名称前把你的命名空间带上

您需要登录后才可以回答。登录 | 立即注册
陈江南
总监

陈江南

注册时间:2015-04-07
最后登录:2024-03-15
在线时长:22小时52分
  • 粉丝8
  • 金钱2951
  • 威望30
  • 积分3471

热门问题