前段时间遇到一个排序问题,大致是这样的:
$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 排序的更多相关文章

  1. php数组合并方法array_merge + 排序array_multisort方法 array_unique数组去重 array_values数组索引值重新从0开始递增

    $dingdan = array_merge($jie_dingdan,$user_dingdan);//数组合并方法 $orderFile = array(); foreach($dingdan a ...

  2. array_multisort 二维数组排序

    用PHP自带array_multisort函数排序 <?php $data = array();    $data[] = array('volume' => 67, 'edition' ...

  3. PHP 多维数组排序 array_multisort()

    用PHP自带array_multisort函数排序 <?php $data = array();    $data[] = array('volume' => 67, 'edition' ...

  4. php多维数组的指定单个字段排序

    多维数组如何根据指定键值?比如现在有数组结构如下: ,,,,,'subject' => 'math'), 1 => array('name' => '3班','avgScore'=& ...

  5. php一些高级函数方法

    PHP高级函数 1.call_user_func (http://php.net/manual/zh/function.call-user-func.php) 2.get_class (http:// ...

  6. php 数组排序 按照某字段

    $arr=[     array(         'name'=>'小坏龙',         'age'=>28     ),     array(         'name'=&g ...

  7. PHP数组排序和按数量分割

    用PHP自带array_multisort函数排序 <?php     $data = array();    $data[] = array('volume' => 67, 'editi ...

  8. PHP array_multisort—对多个数组或多维数组进行排序

    PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序. 关联(string)键名保持不变,但数字键名会被重新索引. 输入数组被当成一个表的列并以 ...

  9. php中的常用数组函数(八) 排序函数汇总(sort、rsort、usort、asort、uasort、arsort、ksort、uksort、krsort、natsort、natcasesort、array_multisort)

    测试环境:php5.3.29 sort_flags 可以用以下值改变排序的行为: 排序类型标记: SORT_REGULAR - 正常比较单元(不改变类型) SORT_NUMERIC - 单元被作为数字 ...

随机推荐

  1. JDBC编程工具类 Dbconnection

    JDBC基础:https://blog.csdn.net/weixin_44893902/article/details/106746880 Dbconnection工具类(包含了连接,增删改查,关闭 ...

  2. vue3+TypeScript+vue-router使用

    简单使用 创建项目 vue-cli创建 $npm install -g @vue/cli $vue --version @vue/cli 4.5.15 $vue create my-project 然 ...

  3. .net core使用rabbitmq消息队列 (二)

    之前有写过.net core集成使用rabbitmq的博文,见.net core使用rabbitmq消息队列,但是里面的使用很简单,而且还有几个bug,想改下,但是后来想了想,还是算了,之前使用的是. ...

  4. CGO快速入门

    1. 通过`improt "C"`语句开启CGO特性2. `/**/`中间是C代码,之后接 import "C" 如果存在空行 就会报错.could not d ...

  5. laravel源码分析-队列Queue

    laravel 源码分析具体注释见 https://github.com/FX-Max/source-analysis-laravel 前言 队列 (Queue) 是 laravel 中比较常用的一个 ...

  6. vi中使用鼠标右键插入时进入(insert)visual模式

    使用vim插入外面复制的内容时,用右键点击后,并未将内容粘贴进去,而是进入了(insert)visual模式,解决方法:先shift+enter进入普通模式输入 set mouse-=a然后再i进入i ...

  7. Nginx 加载conf.d (内文件***.conf)

    include /usr/local/nginx/conf/conf.d/*.conf;

  8. 微软开源Kubernetes服务网格项目Open Service Mesh​

    尽管微服务环境提供可移植性,允许更快更频繁的部署周期,甚至还能让组织创建关注于特定领域的团队,但这也伴随着对于流量管理.安全以及可观测性等需求的增长.在整个生态系统中,针对这些需求的服务网格模式的实现 ...

  9. Java实现二叉搜索树的插入、删除

    前置知识 二叉树的结构 public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode( ...

  10. kubernetes运行应用2之DaemonSet详解

    kubernetes运行应用1之Deployment详解   查看daemonset 如下,k8s自身的 DaemonSet kube-flannel-ds和kube-proxy分别负责在每个结点上运 ...