• 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 }

    目录结构如何:

     
  • 相关阅读:
    jackson学习之一:基本信息 jackson学习之二:jackson-core
    FastAPI项目实战:SayHello(FastAPI + vue.js + axios + element ui 翻自Flask版
    MarkDown优雅发表
    docker使用笔记
    JVM的重要性 从上层应用程序到底层操作系统,到底有哪些东西?
    Python正则表达式re模块和os模块实现文件搜索模式匹配
    区块链学习6:图灵完备和图灵不完备
    moviepy音视频开发:使用credits1给视频加片头片尾字幕
    moviepy音视频开发:使用volumex调节音量大小及其花式用法
    moviepy音视频开发:audio_normalize调整剪辑音量大小到正常
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10646529.html
Copyright © 2020-2023  润新知