thinkphp5中如何使用 usort

thinkphp5中如何使用 usort

1、總結

一句話總結:其實比較函數加上命名空間就好啦,否則找不到

比較函數加命名空間 數組作usort的第二個參數
usort($question_list, array('\app\index\model\blog\choose_question\base\UsortQuestionList',"cmp_sequence_score"));

 

一、php中usort的比較函數怎麼寫?

和c++中的比較函數的寫法差很少

 

 

 

2、關於自定義比較函數 usort 如何使用 類中的方法(轉)

轉自:關於自定義比較函數 usort 如何使用 類中的方法 - qdujunjie的專欄 - CSDN博客
https://blog.csdn.net/qdujunjie/article/details/42081137php

 

關於自定義比較函數 usort() ,若是直接使用函數,是html

 

usort($arr, "yourfunction");c++

 

 

若是要使用類中的自定義方法,則用如下方式:thinkphp

 

 

 

<?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
                )

        )

)

 

3、thinkphp中使用usort排序實例

其實加上命名空間就好啦app

usort($question_list, array('\app\index\model\blog\choose_question\base\UsortQuestionList',"cmp_sequence_score"));
 1 <?php  2 namespace app\index\model\blog\choose_question\base;  3 use app\index\model\Base;  4 
 5 //用usort函數給題目列表排序
 6 class UsortQuestionList extends Base  7 {  8 
 9 
10     /*************************************************1、主函數區*************************************************/
11     //1:按題目的日期時間戳和題目所在博客的位置給題目列表排序,而且增長 順序因子(分數) sequence_score
12 
13     public static function add_sequence_score($question_list){ 14         usort($question_list, array('\app\index\model\blog\choose_question\base\UsortQuestionList',"cmp_sequence_score")); 15         return $question_list; 16  } 17 
18 
19 
20 
21     /*************************************************2、工具函數區*************************************************/
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 }

目錄結構如何:函數

相關文章
相關標籤/搜索