• PHP精选数组函数


    编程怎么能少的了数组呢,以下是学习PHP时常用的数组处理函数。在编程中要遵循一个原则就是DRY(Don`t Repeat Yourself)原则,PHP中有大量的函数,都记住这些函数不太现实,但常用的函数还是要熟练使用的,大部分的函数的使用方法可以通过查询PHP的手册来使用。在编程中查手册是少不了的,所以要会学着使用已有的东西,就如PHP中的数组处理函数已经有排序函数了,为什么还要在写东西是费着劲去写冒泡或者堆排或者快排呢。

      编程是间接的过程,也是重用的过程,要写出好的代码是少不了设计模式来做支撑的,可能对初学者来说学习设计模式有些吃力(就像我当初看设计模式时,真是有点费劲),不过等你的代码量有一定积累时,在研究设计模式时,感觉设计模式真的挺有用的,能帮助你写出漂亮的代码。说着说着有点跑偏了,还是来总结一下php中对数组操作的常用函数吧。

      以下总结的数组常用的函数,可能有些读者会感觉有些少,众人拾柴火焰高吗,如果感觉还有其他常用的数组处理函数,给个评论留下呗,不要吝啬自己的知识嘛,和别人分享东西不是一件很快乐的东西吗。还有,下面的代码出自本人之手,不过是两年前写的代码了,欢迎大家批评指正。

    1. array_splice() 删除数组中的指定元

      array_splice(数组名,从前往后删的个数,new一个数组的大小);没有第三参数也就没有返数组,没有第三个参数时,第二个参数的意义为从前往后保留几个

      exp:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      <?php
          $my_array=array(    //建立数组
              "hehe"=>"haha",
              "A"=>"lu",
              "lu"=>"ge"
          );
          $new=array_splice($my_array,1,3);    //使用array_splice(数组名,从前往后删的个数,new一个数组的大小);
          var_dump($new);
      ?>

        结果:array(2) { ["A"]=> string(2) "lu" ["lu"]=> string(2) "ge" }

    2、foreach()数组的遍历

        用法:foreach(数组 as 键名=>键值)或foreach(数组 as 键值)

    exp:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
        $my_array=array(    //建立数组
            "hehe"=>"haha",
            "A"=>"lu",
            "lu"=>"ge"
        );
        foreach($my_array as $key=>$value)
        {
            echo $key."=>".$value."<br/>";
        }
    ?>

    输出结果:

    hehe=>haha

    A=>lu

    lu=>ge

    3、数组的排序

        (1)sort()和rsort()    按键值排序sort()从小到大,rsort()从大到小

                sort ()   exp :     

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        $my_array=array(1,2,3,6,7,8,9,4,5);//建立数组
        sort($my_array);
        foreach($my_array as $keys=>$value)
        {
            echo $keys."=>".$value."<br/>";
        }
    ?>

               输出结果:

        0=>1

        1=>2
        2=>3
        3=>4
        4=>5
        5=>6
        6=>7
        7=>8
        8=>9

                 rsort() exp:

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        $my_array=array(1,2,3,6,7,8,9,4,5);//建立数组
        rsort($my_array);
        foreach($my_array as $keys=>$value)
        {
            echo $keys."=>".$value."<br/>";
        }
    ?>

      输出结果:

        0=>9
        1=>8
        2=>7
        3=>6    
        4=>5
        5=>4
        6=>3
        7=>2
        8=>1

        (2).asort()和arsort()和上面的原理一样,不过不改变键名和键值的对应关系

        exp:

    1
    2
    3
    4
    5
    6
    7
    8
    <?php
        $my_array=array(1,2,3,6,7,8,9,4,5);//建立数组
        asort($my_array);
        foreach($my_array as $keys=>$value)
        {
            echo $keys."=>".$value."<br/>";
        }
    ?>

    输出结果:

    0=>1
    1=>2
    2=>3
    7=>4
    8=>5
    3=>6
    4=>7
    5=>8
    6=>9

    (3)ksort()和krsort()是按键名的大小排序

    4.数组的数学类函数

    • array_sum()计算数组的所有键值的和  count()计算元素的个数

      exp:

      1
      2
      3
      4
      <?php
          $my_array=array(1,2,3,6,7,8,9,4,5);//建立数组
          echo array_sum($my_array);
      ?>

        输出结果:45

    5.其他函数

        • array_unique() 去除数组中的相同元素

        • in_array()检测一个值是否在数组中(返回true和false)

        • array_search()返回的是键或值,返回的是键值所对应的键名

        • shuffle()打乱原有的数组

        • 1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          <?php
              $my_array=array(1,2,3,6,7,8,9,4,5,5,5,5);//建立数组
              array_unique($my_array);//去除数组中的相同元素
              var_dump($my_array);
              echo "<br/>";
              echo in_array(5,$my_array);
              echo "<br/>";
              $new=array_search(6,$my_array);//返回的是键值所对应的键名
              echo $new;
          ?>

          输出结果:

        • array(12) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(6) [4]=> int(7) [5]=> int(8) [6]=> int(9) [7]=> int(4) [8]=> int(5) [9]=> int(5) [10]=> int(5) [11]=> int(5) } 
          1
          3

  • 相关阅读:
    Filtering Approaches for Real-Time Anti-Aliasing(2011 SIGGRAPH)
    Rendering in UE4(Gnomon School UE4 大师课笔记)
    [转]Normal Map中的值, Tangent Space, 求算 Tangent 与 Binormal 与 TBN Matrix
    【第四章】语法分析
    【第三章】词法分析
    "随笔"列表
    查看Linux下库文件(a, so)中函数、变量
    [转]在Ubuntu 18.04系统上安装Systemback的方法
    [转]grep
    解决 Android 输出Logcat时报错[ read: unexpected EOF! ]
  • 原文地址:https://www.cnblogs.com/zhangkeyu/p/6659342.html
Copyright © 2020-2023  润新知