在编程中查手册是少不了的,所以要会学着使用已有的东西,就如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/>" ; } ?> |
输出结果:
1
2
3
4
5
|
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/>" ; } ?> |
输出结果:
1
2
3
4
5
6
7
8
9
10
|
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/>" ; } ?> |
输出结果:
1
2
3
4
5
6
7
8
9
|
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/>" ; } ?> |
输出结果:
1
2
3
4
5
6
7
8
9
|
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 ; ?> |
输出结果:
1
2
3
|
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 |