php按照,php按照指定顺序的排序

今天遇到一个需求,需要对一个数组按指定顺序进行排序,最终查到个解决办法:

$sort_rule = [5,7,3,1,8,2];

$arr = [1,2,3,5,7,8];

//需求,将数组$arr以$sort_rule指定的顺序进行排序

解决方式1

$a = array_intersect($sort_rule,$arr);

$b = array_diff($arr,$sort_rule);

$re = array_merge($a, $b);

array_intersect函数的作用是基于第一个数组获取两个数组的交集,如上述例子

array_intersect($sort_rule, $arr);

先根据$sort_rule中的第一个元素从$arr中找相同的元素,如果有,则取出, 没有则找第二个元素,依次类推

因此,最后获取的交集数组的顺序,和$sort_sule数组的顺序是一模一样的 也就实现了按sort_rule指定的顺序进行排序的要求

解决方式2

usort($arr, function ($a, $b) use ($rule) {

return (array_search($a, $rule) < array_search($b, $rule)) ? -1 : 1;

//将排序规则用use传入闭包函数,如果元素$a在$rule中的位置小于$b在$rule中的位置,则返回-1,反之返回1, //usort函数会根据闭包函数的返回值将$a和$b的位置进行调整 });

《SQL 进阶教程》 case&colon;练习题1-1-3 用 ORDER BY 指定顺序进行排序

select name from greatestsORDER BY case when name ='B' then 1 when name ='A' then 2 when name ='D' t ...

SQL按照指定顺序对字段进行排序

SqlServer按照指定顺序对字段进行排序 问题如下,在SqlServer有一个这样的SQL查询 SELECT *FROM ProductWHERE ID IN ( 12490, 12494, 12 ...

MySql查询结果按照指定顺序排序

Mysql这功能做的很好用啊!! 让查询结果按照指定顺序排序 --------------------------------------------------------------------- ...

SQL按指定文字顺序进行排序&lpar;中文或数字等&rpar;

在有些情况下我们需要按指定顺序输出数据,比如选择了ID in(3,1,2,5,4)我们希望按这个3,1,2,5,4的顺序输出,这样只使用order by ID是无法实现的, 但是我们可以使用order ...

SqlServer按照指定顺序对字段进行排序

最近的一个项目,使用存储过程对报表进行分析,其中有一些名称需要根据指定顺序显示,而其名称对应的编号并不是按照要求的顺序排列的.通过上网查找资料,发现sql 中的charindex函数可以帮助解决这个问 ...

【C&num;】 List按指定字段的给出的自定义顺序进行排序

#引言 有一个集合,对其进行排序,排序规则为:按对象中某个字段的特定顺序进行排序,比如:对象属性id,按照[4,2,5,1]的顺序排序: #代码: public class Foo { public ...

对JavaScript对象数组按指定属性和排序方向进行排序

引子 在以数据为中心的信息系统中,以表格形式展示数据是在常见不过的方式了.对数据进行排序是必不可少的功能.排序可以分为按单个字段排序和按多个字段不同排序方向排序.单字段排序局限性较大,不能满足用户对数 ...

sort如何按指定的列排序&CenterDot;百家电脑学院

sort如何按指定的列排序·百家电脑学院 sort如何按指定的(9php.com)列排序 0000            27189           41925425065f           ...

laravel中跟据某个特定顺序去排序查出来的数据&colon;FIND&lowbar;IN&lowbar;SET

//返回有顺序的客户id $customer_ids = $customer->bespeakTime($uid); $res = Customer::with('customer_indust ...

随机推荐

C语言中do&period;&period;&period;while&lpar;0&rpar;的妙用&lpar;转载&rpar;

转载来自:C语言中do...while(0)的妙用,感谢分享. 在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 1.避免goto语 ...

测试的程序 test&period;php,保存放IIS的根目录下

IIS+PHP的配置的方法,试过之后很多都不能达到效果.于是总结了大部分的文章后就得出了这样的方法 一.下载必须的程序:(1) 先到PHP的官方网站下载一个PHP(本文就以PHP 4.4.2为例).网 ...

mysql基础 事务的认识和使用

事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务是恢复和并发控制的基本单位. 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序 ...

CAS SSO对手机应用支持的一种思路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值