zoukankan      html  css  js  c++  java
  • thinkphp5中如何使用 usort

    thinkphp5中如何使用 usort

    一、总结

    一句话总结:其实比较函数加上命名空间就好啦,不然找不到

    比较函数加命名空间 数组做usort的第二个参数
    usort($question_list, array('appindexmodellogchoose_questionaseUsortQuestionList',"cmp_sequence_score"));

    1、php中usort的比较函数怎么写?

    和c++中的比较函数的写法差不多

    二、关于自定义比较函数 usort 如何使用 类中的方法(转)

    转自:关于自定义比较函数 usort 如何使用 类中的方法 - qdujunjie的专栏 - CSDN博客
    https://blog.csdn.net/qdujunjie/article/details/42081137

    关于自定义比较函数 usort() ,如果直接使用函数,是

    usort($arr, "yourfunction");

    如果要使用类中的自定义方法,则用以下方式:

    <?php
    
    /**
     * SortTest
     *
     * @author andy
     */
    class SortTest extends CommonAction {
    
        protected function my_sort($a, $b){
            if ($a == $b) return 0;
                return ($a > $b) ? 1 : -1;
        }
    
        public function index(){
    
    
            $arr = array(
                'products'=>array(
                array('product_id'=>'123'),
                array('product_id'=>'abc'),
                array('product_id'=>'321'),
                array('product_id'=>'111'),
                )
            );
    
            usort($arr['products'],array('SortTest','my_sort'));
        }
    
    }


    结果为:

    Array
    (
        [products] => Array
            (
                [0] => Array
                    (
                        [product_id] => 111
                    )
    
                [1] => Array
                    (
                        [product_id] => 123
                    )
    
                [2] => Array
                    (
                        [product_id] => 321
                    )
    
                [3] => Array
                    (
                        [product_id] => abc
                    )
    
            )
    
    )

    三、thinkphp中使用usort排序实例

    其实加上命名空间就好啦

    usort($question_list, array('appindexmodellogchoose_questionaseUsortQuestionList',"cmp_sequence_score"));
     1 <?php
     2 namespace appindexmodellogchoose_questionase;
     3 use appindexmodelBase;
     4 
     5 //用usort函数给题目列表排序
     6 class UsortQuestionList extends Base
     7 {
     8 
     9 
    10     /*************************************************一、主函数区*************************************************/
    11     //1:按题目的日期时间戳和题目所在博客的位置给题目列表排序,并且增加 顺序因子(分数) sequence_score
    12 
    13     public static function add_sequence_score($question_list){
    14         usort($question_list, array('appindexmodellogchoose_questionaseUsortQuestionList',"cmp_sequence_score"));
    15         return $question_list;
    16     }
    17 
    18 
    19 
    20 
    21     /*************************************************二、工具函数区*************************************************/
    22     public static function cmp_sequence_score($a, $b)
    23     {
    24         if ($a['b_day_ts'] == $b['b_day_ts']) {
    25             return ($a['bq_blog_question_num'] < $b['bq_blog_question_num']) ? -1 : 1;
    26         }
    27         return ($a['b_day_ts'] < $b['b_day_ts']) ? -1 : 1;
    28     }
    29 
    30 }

    目录结构如何:

     
  • 相关阅读:
    hive之窗口函数
    linux环境下Mysql的卸载和重新安装和启动
    2017ACM暑期多校联合训练
    2017ACM暑期多校联合训练
    状态压缩dp
    铺砖问题 (状态压缩dp)
    POj 2104 K-th Number (分桶法+线段树)
    POJ 2991 Crane (线段树)
    4 Values whose Sum is 0 POJ 2785 (折半枚举)
    Billboard HDU 2795 (线段树)
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10646529.html
Copyright © 2011-2022 走看看