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"));
<?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的更多相关文章
- thinkphp5中使用phpmailer实现发送邮件功能(转载)
一.开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例). 1.登录163邮箱,在首页上找到“设置”. 2.选择开启的服务,一般都全选,POP3/SMTP/I ...
- thinkphp5中使用PHPExcel(转载)
thinkphp5中可以使用composer来获取第三方类库,使用起来特别方便,例如:可是使用composer下载PHPMailer,think-captcha(验证码)等等…… 接下来说一下怎么使用 ...
- thinkphp5中的配置如何使用
thinkphp5中的配置如何使用 一.总结 一句话总结:先加载配置,然后读取配置即可 加载配置 读取配置 Config::load(APP_PATH.'fry_config.php');\\加载配置 ...
- thinkphp5中的一些关于命名空间的tisp
1.thinkphp5中公共函数文件common中,不需要use,也可以直接使用vendor中的类文件. 2.在类前面的反斜杠作用是,直接使用最外层的命名空间,有时不想use某个X类,却想使用X类时, ...
- ThinkPHP5中find()和select()区别
ThinkPHP5中find()和select()区别 读取数据是指读取数据表中的一行数据(或者关联数据),主要通过find方法完成,例如: 1 2 3 4 $User = M("User& ...
- ThinkPHP5中如何实现模板完全静态化
模板完全静态化,也就是通过模板完全生成纯静态的网页,相比动态页面和伪静态页面更安全更利于SEO访问更快.相比前二者各有利弊吧,现在稍微对这三种形式的优缺点对比一下,以及在ThinkPHP5项目中实现完 ...
- ThinkPHP5中模型关联关系一对一,一对多
TP5 返回json反斜杠前面转义了class XinDai extends Controller{ public function index(){ $res = [ ['logo'=>'/i ...
- thinkphp5中使用phpmailer实现发送邮件功能
一.开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例). 1.登录163邮箱,在首页上找到“设置”. 2.选择开启的服务,一般都全选,POP3/SMTP/I ...
- ThinkPHP5中Session的使用
由于用惯了ThinkPHP之前的版本,一想到要用Session就直接用$_SESSION来存取,今天看了ThinkPHP5的手册,才发现原来这么用时不安全滴.ThinKPHP5对Session进行了封 ...
随机推荐
- python简说(六)判断
非空即真,非0即真True '1' [1] {k-v}False '' None [] {}
- phpstorm 配置点右上角浏览器图标时用浏览器打开当前页面
文件>设置 只要这一步就可以这样了
- 20145212 罗天晨 《网络对抗》Exp3 Advanced 恶意代码伪装技术实践
恶意代码伪装技术实践 木马化正常软件. 啊哈--原本以为很复杂--然后我看了一下蔡野同学的博客,发现原理竟然如此简单-- 对原先生成病毒的代码稍作修改: 于是--把生成的后门软件改成骗人的名字:这里改 ...
- JVM内存结构之堆、栈、方法区以及直接内存、堆和栈区别
JVM内存结构之堆.栈.方法区以及直接内存.堆和栈区别 一. 理解JVM中堆与栈以及方法区 堆(heap):FIFO(队列优先,先进先出):二级缓存:*JVM中只有一个堆区被所有线程所共享:对象和数 ...
- Codeforces Round #425 (Div. 2) Problem B Petya and Exam (Codeforces 832B) - 暴力
It's hard times now. Today Petya needs to score 100 points on Informatics exam. The tasks seem easy ...
- 牛客网校招全国统一模拟笔试(二月场)- Java方向
1.请问下面关于与wait()一起使用的方法notify()的各种陈述,哪个正确? A 多个线程同时等待某个条件,则只有等待时间最长的哪个线程被通知 B 多个线程同时等待某条件,则没有办法预测哪个线程 ...
- python之udp
import socket s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.bind(('127.0.0.1',8888)) while T ...
- SCU 4445 Right turn(dfs)题解
思路:离散化之后,直接模拟就行,标记vis开三维 代码: #include<iostream> #include<algorithm> #include<cstdio&g ...
- (转)开源项目t-io
石墨文档:https://shimo.im/docs/tHwJJcvKl2AIiCZD/ (二期)18.开源t-io项目解读 [课程18]BIO....AIO.xmind0.4MB [课程18]t-i ...
- 【Hadoop 分布式部署 十:配置HDFS 的HA、启动HA中的各个守护进程】
官方参考 配置 地址 :http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabili ...