萨尔法保护 发表于 2015-8-26 13:10:46

PHP精选数组函数

  编程怎么能少的了数组呢,以下是学习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) { => int(1) => int(2) => int(3) => int(6) => int(7) => int(8) => int(9) => int(4) => int(5) => int(5) => int(5) => int(5) }
1
3
  

页: [1]
查看完整版本: PHP精选数组函数