设为首页 收藏本站
查看: 447|回复: 0

[经验分享] PHP精选数组函数

[复制链接]
发表于 2015-8-26 13:10:46 | 显示全部楼层 |阅读模式
  编程怎么能少的了数组呢,以下是学习PHP时常用的数组处理函数。在编程中要遵循一个原则就是DRY(Don`t Repeat Yourself)原则,PHP中有大量的函数,都记住这些函数不太现实,但常用的函数还是要熟练使用的,大部分的函数的使用方法可以通过查询PHP的手册来使用。在编程中查手册是少不了的,所以要会学着使用已有的东西,就如PHP中的数组处理函数已经有排序函数了,为什么还要在写东西是费着劲去写冒泡或者堆排或者快排呢。
    编程是间接的过程,也是重用的过程,要写出好的代码是少不了设计模式来做支撑的,可能对初学者来说学习设计模式有些吃力(就像我当初看设计模式时,真是有点费劲),不过等你的代码量有一定积累时,在研究设计模式时,感觉设计模式真的挺有用的,能帮助你写出漂亮的代码。说着说着有点跑偏了,还是来总结一下php中对数组操作的常用函数吧。
    以下总结的数组常用的函数,可能有些读者会感觉有些少,众人拾柴火焰高吗,如果感觉还有其他常用的数组处理函数,给个评论留下呗,不要吝啬自己的知识嘛,和别人分享东西不是一件很快乐的东西吗。还有,下面的代码出自本人之手,不过是两年前写的代码了,欢迎大家批评指正。

  •   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
        


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-104489-1-1.html 上篇帖子: PHP关于传众多参数还是传上下文对象的性能测试 下篇帖子: 使用 CodeIgniter 框架快速开发 PHP 应用(五)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表