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"));
 <?php
namespace app\index\model\blog\choose_question\base;
use app\index\model\Base; //用usort函数给题目列表排序
class UsortQuestionList extends Base
{ /*************************************************一、主函数区*************************************************/
//1:按题目的日期时间戳和题目所在博客的位置给题目列表排序,并且增加 顺序因子(分数) sequence_score public static function add_sequence_score($question_list){
usort($question_list, array('\app\index\model\blog\choose_question\base\UsortQuestionList',"cmp_sequence_score"));
return $question_list;
} /*************************************************二、工具函数区*************************************************/
public static function cmp_sequence_score($a, $b)
{
if ($a['b_day_ts'] == $b['b_day_ts']) {
return ($a['bq_blog_question_num'] < $b['bq_blog_question_num']) ? -1 : 1;
}
return ($a['b_day_ts'] < $b['b_day_ts']) ? -1 : 1;
} }

目录结构如何:

 

thinkphp5中如何使用 usort的更多相关文章

  1. thinkphp5中使用phpmailer实现发送邮件功能(转载)

    一.开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例). 1.登录163邮箱,在首页上找到“设置”. 2.选择开启的服务,一般都全选,POP3/SMTP/I ...

  2. thinkphp5中使用PHPExcel(转载)

    thinkphp5中可以使用composer来获取第三方类库,使用起来特别方便,例如:可是使用composer下载PHPMailer,think-captcha(验证码)等等…… 接下来说一下怎么使用 ...

  3. thinkphp5中的配置如何使用

    thinkphp5中的配置如何使用 一.总结 一句话总结:先加载配置,然后读取配置即可 加载配置 读取配置 Config::load(APP_PATH.'fry_config.php');\\加载配置 ...

  4. thinkphp5中的一些关于命名空间的tisp

    1.thinkphp5中公共函数文件common中,不需要use,也可以直接使用vendor中的类文件. 2.在类前面的反斜杠作用是,直接使用最外层的命名空间,有时不想use某个X类,却想使用X类时, ...

  5. ThinkPHP5中find()和select()区别

    ThinkPHP5中find()和select()区别 读取数据是指读取数据表中的一行数据(或者关联数据),主要通过find方法完成,例如: 1 2 3 4 $User = M("User& ...

  6. ThinkPHP5中如何实现模板完全静态化

    模板完全静态化,也就是通过模板完全生成纯静态的网页,相比动态页面和伪静态页面更安全更利于SEO访问更快.相比前二者各有利弊吧,现在稍微对这三种形式的优缺点对比一下,以及在ThinkPHP5项目中实现完 ...

  7. ThinkPHP5中模型关联关系一对一,一对多

    TP5 返回json反斜杠前面转义了class XinDai extends Controller{ public function index(){ $res = [ ['logo'=>'/i ...

  8. thinkphp5中使用phpmailer实现发送邮件功能

    一.开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例). 1.登录163邮箱,在首页上找到“设置”. 2.选择开启的服务,一般都全选,POP3/SMTP/I ...

  9. ThinkPHP5中Session的使用

    由于用惯了ThinkPHP之前的版本,一想到要用Session就直接用$_SESSION来存取,今天看了ThinkPHP5的手册,才发现原来这么用时不安全滴.ThinKPHP5对Session进行了封 ...

随机推荐

  1. node.js 初学(二)—— 搭建注册/登录服务器

    node.js 初学(二)—— 搭建注册/登录服务器 理论上来说,代码实现在理论和实际上是一样的.但实际上来说,他们不是 做一个最简单的用户注册登录功能 1.接口定义: 注册:/user?act=re ...

  2. centos install go

    https://golang.org/doc/install 一键安装 https://jamesnbr.wordpress.com/2017/10/18/golang-1-9-1-install-o ...

  3. Javascropt-KeyCode

    当点回车时触发搜索事件 $(document).keydown(function (e) {                if (e.keyCode == 13) {                 ...

  4. QT---实现舒尔特方格(零基础入门)

    按照之前说的,加上舒尔特方格,读者还可以自行将此游戏做成APP放到手机上,后面还有贪吃蛇,Java版的飞机大战,五子棋,各类游戏会不断加上来的,当然,会免费附加源代码! 读者可以去4399去玩一下,可 ...

  5. day 27 异常处理

    一.异常 1.什么是异常? 异常指的是与正常情况不同在程序中 程序的正常执行过程 按照代码顺序 一行一行的执行 直到所有的代码都执行完如果在执行过程中出现了错误导致代码无法执行完毕 这就称之为异常异常 ...

  6. QML获取随机颜色

    rect.color =);//random返回0~1的随机数

  7. 启动maven的web项目

    一.可以通过在pom中配置tomcat插件. 首先要确保你的仓库里有这个插件,然后按如下配置. <build> <plugins> <!-- 配置Tomcat插件 --& ...

  8. topcoder srm 699 div1 -3

    1.两个长度为$n$的数组$a,b$,$0 \leq a_{i} <2^{30}$.$b_{i}=-1$或者$b_{i}$为除$a_{i}$外其他数字的抑或值.现在给定$b$,如果不存在$a$, ...

  9. 2.Android硬件访问服务编写系统代码【转】

    本文转载自:https://blog.csdn.net/qq_33443989/article/details/76696772 版权声明:本文为博主(Tower)自学笔记,欢迎转载! :-)     ...

  10. Web 页面性能分析笔记

    网页慢的原因不一定只是前端,所以需要结合Network一起看 如何评价一个页面打开得快不快,可以用两个指标描述,一个是ready的时间,另一个是load的时间. 如下示例表示,read时间是2.72s ...