zoukankan      html  css  js  c++  java
  • 浅谈usort、uasort、uksort

    前言:这三个函数都是php提供给开发者自定义的数组排序函数。

    1.usort:按值排序,索引重新定义

    a.基础案例

    1 //自定义比较的函数
    2 function mysort($a,$b){
    3     if($a == $b) return 0;
    4     return $a>$b?1:-1; //表示从小到大排列,如果想从大到小排列,则1和-1对调一下即可      
    5 }
    6 $a = array(2,3,1,6,4);
    7 usort($a,'mysort');
    8 print_r($a);
    9 //返回:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 )
    View Code

    b.高级案例

     1 //根据数组中某个元素的值大小排序[二维数组]
     2 function mysort($a,$b){
     3    if($a['create_time']==$b['create_time']) return 0;
     4   return $a['create_time']>$b['create_time']?1:-1;   
     5 }
     6 $a = array(
     7     array('id'=>2,'create_time'=>12234234),
     8     array('id'=>1,'create_time'=>12234221),    
     9     array('id'=>3,'create_time'=>12234222), 
    10 );
    11 usort($a,'mysort');
    12 echo '<pre>';
    13 print_r($a);
    View Code

    返回结果:

     1 Array
     2 (
     3     [0] => Array
     4         (
     5             [id] => 1
     6             [create_time] => 12234221
     7         )
     8 
     9     [1] => Array
    10         (
    11             [id] => 3
    12             [create_time] => 12234222
    13         )
    14 
    15     [2] => Array
    16         (
    17             [id] => 2
    18             [create_time] => 12234234
    19         )
    20 
    21 )
    View Code

    2.uasort:按值排序,但会保持原来索引

    3.uksort:按键排序

  • 相关阅读:
    前端必须掌握的 docker 技能(2)
    前端必须掌握的 docker 技能(1)
    异步 map 和模块打包
    import 和组件库按需引入
    babel-node 和 nodemon
    linux和mac 终端代理
    yarn.lock 是干什么的
    pwa 总结
    设计模式(5): vue 不监听绑定的变量
    django+celery+redis应用
  • 原文地址:https://www.cnblogs.com/zrp2013/p/4639193.html
Copyright © 2011-2022 走看看