Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1507595
  • 博文数量: 164
  • 博客积分: 2993
  • 博客等级: 少校
  • 技术积分: 1718
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-24 11:42
文章分类

全部博文(164)

文章存档

2014年(1)

2013年(36)

2012年(90)

2011年(37)

分类: Python/Ruby

2012-07-14 16:25:53


一。数组的排序函数
    1.sort()
    2.rsort()
    3.usort()
    4.asort()
    5.arsort()
    6.uasort()
    7.ksort()
    8.uksort()
    9.natsort()
    10.natcasesort()
    11.array_multisort()

    (1).简单的数组排序
         sort() rsort()

        $data=array(5,7,3,6,9);
        sort($data);//由小到达
        print_r($data);
        rsort($data);//由大到小
        print_r($data);
     (2).根据键名对数组进行排序
         ksort()  krsort()

         $data=array(5=>"five",8=>"eight",7=>"seven");
         ksort($data);
         print_r($data);
         krsort($data);
         print_r($data);
      (3).根据元素的值对数组排序
         asort()   arsort()//与简单的排序区别在于保留键名与值的 关系

          $data=array(5=>"five",8=>"eight",7=>"seven");
          asort($data);
          print_r($data);
          arsort($data);
          print_r($data);
      (4).根据“自然数排序”对数组进行排序
        natsort ()//区分大小写 
        natcasesort()   //不去分大小写
 
         $data=array("file1.txt","file11.txt","file2.txt","file22.txt");  
         sort($data);
         print_r($data);
         echo '
';
         
         natsort($data);
         print_r($data);
         echo '
';
    
         natcasesort($data);
         print_r($data);
         echo'
';               
        (5).根据用户自定义规则对数组排序
         usort() uasort() uksort()
       
         $data=array("Linux","Apache","Mysql","Php");
         usort($data,"sortbylen");
         function  sortbylen ($one,$two){
              if(strlen($one)==strlen($two))
                  return 0;
               else
                  return (strlen($one)>strlen($two))?1:-1;//如果>变<则顺序颠倒
         }
          print_r($data);
          echo'
';
          (6).多维数组的排序
           array_multisort()

二。拆分、合并、分解、接合的数组函数
      (1).array_slice()//根据条件返回一部分数组

        $lamp=array("Linux","Apache","Mysql","Php");  
        print_r(array_slice($lamp,1,2));//从【1】元素开始取,取两个
        print_r(array_slice($lamp,-2,1));//从后面第二个开始取,取一个
        print_r(array_slice($lamp,1,2,true));//保留原有下标
        //如果是关联数组,则保留键名
   
       (2).array_splice()//选择数组中的一部分删除他们,如果存在第四个参数,则被第四个参数取代
       (3).array_combine()//通过合并两个数组来创建一个新数组
        
        $a=array("os","web","data","lang");
        $b=array("linux","apache","mysql","php");
        print_r(array_combine($a,$b));
        echo '
';
        print_r(array_combine($b,$a));
        echo '
'; //两个输出结果的键与值相反        
       (4).array_merge()//把多个数组合并成一个数组
         $a=array("os","web","data","lang");
        $b=array("linux","apache","mysql","php");
         $c=$a+$b;
         print_r($c);//第一个会把第二个覆盖掉
         $d=array_merge($a,$b);
         print_r($d);
       (5).array_intersect()//求交际
         $a=array("os","web","data","lang",1,2,3,4,5,6);
        $b=array("linux","apache","mysql","php",1,2,3,5);
        $c=array_intersect($a,$b);
        print_r($c); //输出两个数组相同的部分,键名一第一个为准
    
        (6).array_diff()//去掉相同的
          $a=array("os","web","data","lang",1,2,3,4,5,6);
        $b=array("linux","apache","mysql","php",1,2,3,5);
        $c=array_diff($c);
        print_r($c);//输出第一个与第二个的差集   

三。数组与数据结构的函数
     (1).使用数组实现堆栈功能 
       $a=array("os","web","data","lang");
       $a[]="one";
       $a[]="two";//入栈
       array_push($a,"three");
       array_push($a,"four","five");//也是入栈,但没上面的效率高
       $value=array_pop($a);
       $value=array_pop($a);
       print_r($a);
       echo '
';
       echo $value;
      (2).用数组实现队列功能
       $a=array("os","web","data","lang");
       array_unshift($a,1);//从对尾入队列
       print_r($a);echo '
'; 
       array_shift($a);//从对尾删除元素
       print_r($a);echo '
';
       unset($a[3]);//删除任意位置的数组元素
       print_r($a);
       
四。其他与数据操作有关的函数
     array_rand();
     shuffle();
     array_sum();
     range();

     $arr=array(1,2,3,4,5,6);
     echo $arr[array_rand($arr)]; //从数组中随机选择一个元素的下标
     print_r($arr);echo'
';
     shuffle($arr);
     print_r($arr);echo'
';//随机排列数组中的元素
     echo array_sum($arr);//数组所有元素的和如果有浮点数则返回浮点值,如果都是整数则返回整数
      
     $a=range(0,5,1);//第一个参数是最小值,第二个参数是最大值,第三个参数是步长(默认为1)
     print_r($a);     
阅读(834) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

3a教程网2013-10-30 21:53:56

一个php数字数组排序函数
http://3aj.cn/article/80.html