thinkphp5中如何使用 usort
thinkphp5中如何使用 usort
一、总结
一句话总结:其实比较函数加上命名空间就好啦,不然找不到
比较函数加命名空间 数组做usort的第二个参数
usort($question_list, array('\app\index\model\blog\choose_question\base\UsortQuestionList',"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('\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 /*************************************************一、主函数区*************************************************/ 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 /*************************************************二、工具函数区*************************************************/ 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 }
目录结构如何:
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-10-30:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672