今天遇到一个需求,需要对一个数组按指定顺序进行排序,最终查到个解决办法:
$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:练习题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按指定文字顺序进行排序(中文或数字等)
在有些情况下我们需要按指定顺序输出数据,比如选择了ID in(3,1,2,5,4)我们希望按这个3,1,2,5,4的顺序输出,这样只使用order by ID是无法实现的, 但是我们可以使用order ...
SqlServer按照指定顺序对字段进行排序
最近的一个项目,使用存储过程对报表进行分析,其中有一些名称需要根据指定顺序显示,而其名称对应的编号并不是按照要求的顺序排列的.通过上网查找资料,发现sql 中的charindex函数可以帮助解决这个问 ...
【C#】 List按指定字段的给出的自定义顺序进行排序
#引言 有一个集合,对其进行排序,排序规则为:按对象中某个字段的特定顺序进行排序,比如:对象属性id,按照[4,2,5,1]的顺序排序: #代码: public class Foo { public ...
对JavaScript对象数组按指定属性和排序方向进行排序
引子 在以数据为中心的信息系统中,以表格形式展示数据是在常见不过的方式了.对数据进行排序是必不可少的功能.排序可以分为按单个字段排序和按多个字段不同排序方向排序.单字段排序局限性较大,不能满足用户对数 ...
sort如何按指定的列排序·百家电脑学院
sort如何按指定的列排序·百家电脑学院 sort如何按指定的(9php.com)列排序 0000 27189 41925425065f ...
laravel中跟据某个特定顺序去排序查出来的数据:FIND_IN_SET
//返回有顺序的客户id $customer_ids = $customer->bespeakTime($uid); $res = Customer::with('customer_indust ...
随机推荐
C语言中do...while(0)的妙用(转载)
转载来自:C语言中do...while(0)的妙用,感谢分享. 在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 1.避免goto语 ...
测试的程序 test.php,保存放IIS的根目录下
IIS+PHP的配置的方法,试过之后很多都不能达到效果.于是总结了大部分的文章后就得出了这样的方法 一.下载必须的程序:(1) 先到PHP的官方网站下载一个PHP(本文就以PHP 4.4.2为例).网 ...
mysql基础 事务的认识和使用
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务是恢复和并发控制的基本单位. 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序 ...
CAS SSO对手机应用支持的一种思路