array_multisort array_merge 排序
前段时间遇到一个排序问题,大致是这样的:
$demo = array(
0 => array(
'name' => 'yangyanfei',
'sex' => 'man',
'age' => 22,
),
1 => array(
'name' => 'yangyanfei',
'sex' => 'man',
'age' => 25,
),
2 => array(
'name' => 'yangyanfei',
'sex' => 'man',
'age' => 26,
),
)
//现在我们有这样一个需求,需要根据内层数组的age从大到小或者从小到大排序......
这个东西,跟我的第一反应,自己做排序吧,各种排序算法~~
突然想翻翻手册里面是否有这样的方法,为你提供好的内置方法~~
结果还真有这样的方法,就是array_multisort啦~~
想深研究的童鞋们可以去看看手册哦~
$tempArr = array(); //用户排序的临时数组
foreach($demo as $k=>$v){
$tempArr[$k] = $v['age'];
}
array_multisort($tempArr,SORT_DESC,$demo); //第二个参数传排序规则
这里$demo即按照age已经从大到小排好了,说下啦~此函数会直接影响$demo 无需重新赋值~~~
像这样的业务很多吧,比如 我们一个数据列表,对内层数组的一个特定字段的值排序,又由于某些原因不符合你的业务需求,这时候那些底层helper又不能随便乱改,这个时候,可以考虑下这个内置方法 ~~~~~~
最后给一个小提示~~
array_merge这个家伙太坏了,如果你合并的索引式数组,小心点,它会把你的key干掉的,key会重新索引,这个时候 不妨试下 +
比如
$arr = array(20=>'11',41=>'yang',12=>'yanfei');
$arrNew = array(21=>'1asdf1',66=>'yang',14=>'yangyanfeiyangyanfei');
$demo = array($arr,$arrNew); //这样的话,它会把你的数组key清除~~小心点~~~~
这个时候你不妨试试 $demo = $arr + $arrNew; //单纯的把数组连接起来~~~不会清除键值对应关系~~~~~
exit();
array_multisort array_merge 排序的更多相关文章
- php数组合并方法array_merge + 排序array_multisort方法 array_unique数组去重 array_values数组索引值重新从0开始递增
$dingdan = array_merge($jie_dingdan,$user_dingdan);//数组合并方法 $orderFile = array(); foreach($dingdan a ...
- array_multisort 二维数组排序
用PHP自带array_multisort函数排序 <?php $data = array(); $data[] = array('volume' => 67, 'edition' ...
- PHP 多维数组排序 array_multisort()
用PHP自带array_multisort函数排序 <?php $data = array(); $data[] = array('volume' => 67, 'edition' ...
- php多维数组的指定单个字段排序
多维数组如何根据指定键值?比如现在有数组结构如下: ,,,,,'subject' => 'math'), 1 => array('name' => '3班','avgScore'=& ...
- php一些高级函数方法
PHP高级函数 1.call_user_func (http://php.net/manual/zh/function.call-user-func.php) 2.get_class (http:// ...
- php 数组排序 按照某字段
$arr=[ array( 'name'=>'小坏龙', 'age'=>28 ), array( 'name'=&g ...
- PHP数组排序和按数量分割
用PHP自带array_multisort函数排序 <?php $data = array(); $data[] = array('volume' => 67, 'editi ...
- PHP array_multisort—对多个数组或多维数组进行排序
PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序. 关联(string)键名保持不变,但数字键名会被重新索引. 输入数组被当成一个表的列并以 ...
- php中的常用数组函数(八) 排序函数汇总(sort、rsort、usort、asort、uasort、arsort、ksort、uksort、krsort、natsort、natcasesort、array_multisort)
测试环境:php5.3.29 sort_flags 可以用以下值改变排序的行为: 排序类型标记: SORT_REGULAR - 正常比较单元(不改变类型) SORT_NUMERIC - 单元被作为数字 ...
随机推荐
- 编写Java程序,测试包的使用和成员的访问权限
返回本章节 返回作业目录 需求说明: 测试包的使用和成员的访问权限: 分别创建两个包,在这两个包下分别建立两个类. 其中某个类的某个方法需要引用用另一个包中某个类的某些成员属性. 被引用成员属性分别使 ...
- 编写Java程序,将JButton按钮按网格布局管理器格式放置
返回本章节 返回作业目录 需求说明: 将JButton按钮按网格布局管理器格式放置 实现思路: 实现代码: public void init(){ setLayout(new GridLayout(4 ...
- 编写Java程序,模拟五子棋博弈过程中的异常声明和异常抛出
返回本章节 返回作业目录 需求说明: 模拟五子棋博弈过程中的异常声明和异常抛出,判断用户所下棋子的位置,是否超越了棋盘的边界. 棋盘的横坐标的范围为0-9,纵坐标范围为0-14,如果用户所放棋子的坐标 ...
- docker学习:docker安装
Centos7 安装docker 下载安装 yum install docker-ce 启动docker systemctl start docker 创建并编写镜像加速文件 vim /etc/doc ...
- Drools的Eclipse_IDEA插件安装
1.说明 Drools使用时不是必须依赖插件的, 只是在安装了相应的插件之后, 在开发工具中能识别到对应的drools文件, 能够进行一些智能提示. 以及使用插件提供的便捷功能. 2.Eclipse插 ...
- Kafka集群安装Version1.0.1(自带Zookeeper)
1.说明 Kafka集群安装,基于版本1.0.1, 使用kafka_2.12-1.0.1.tgz安装包, 其中2.12是编译工具Scala的版本. 而且不需要另外安装Zookeeper服务, 使用Ka ...
- Flask + flask_sqlalchemy + jq 完成书籍展示、新增、删除功能
后端代码 from flask import Flask, render_template, request, jsonify from flask_wtf.csrf import CSRFProte ...
- nginx 超时时间配置说明
做excel文件导入时 报 504 错误 是nginx网关超时导致 下面几个参数貌似没效果,反正我配置不起作用 这是有问题的配置属性 ,注意 于是我换了配置 ,放在http块里 ,配置生效了 #读 ...
- Web开发之response
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. 我们要获取客户机提交过来的数据,只需要找request对象就行 ...
- 《剑指offer》面试题46. 把数字翻译成字符串
问题描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,25 ...