博客列表 >PHP基础知识数组函数学习小结

PHP基础知识数组函数学习小结

马晓宁
马晓宁原创
2020年05月02日 21:03:19928浏览

数组函数示例:

1.array_chunk() 函数 把数组分割为带有两个元素的数组:

  1. <?php
  2. $age=array("小马"=>"51","小红"=>"42","小张"=>"31","小王"=>"35");
  3. print_r(array_chunk($age,2,true));
  4. ?>

结果:Array ( [0] => Array ( [小马] => 51 [小红] => 42 ) [1] => Array ( [小张] => 31 [小王] => 35 ) )


2.array_diff() 函数 比较两个数组的键值,并返回差集

  1. <?php
  2. $a1=array("a"=>"小红","b"=>"小马","c"=>"小王","d"=>"小张");
  3. $a2=array("e"=>"小红","f"=>"小马","g"=>"小王");
  4. $result=array_diff($a1,$a2);
  5. print_r($result);
  6. ?>

结果:Array ( [d] => 小张 )


3.array_fill() 函数 用值填充数组

  1. <?php
  2. $a1=array_fill(1,3,"小马");
  3. print_r($a1);
  4. ?>

结果:Array ( [1] => 小马 [2] => 小马 [3] => 小马 )


4.array_keys() 函数 返回包含数组中所有键名的一个新数组。

  1. <?php
  2. $a=array("小马"=>"88","小张"=>"66","小王"=>"22");
  3. print_r(array_keys($a,"22"));
  4. ?>

结果:Array ( [0] => 小王 )


5.array_merge() 函数 把一个或多个数组合并为一个数组

  1. <?php
  2. $a1=array("a"=>"小马","b"=>"小张");
  3. $a2=array("c"=>"小红","b"=>"小王");
  4. print_r(array_merge($a1,$a2));
  5. ?>

结果:Array ( [a] => 小马 [b] => 小王 [c] => 小红 )


6.array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组。

  1. <?php
  2. $a=array("a"=>"小马","b"=>"小红","c"=>"小张","d"=>"小王");
  3. print_r(array_rand($a,1));
  4. ?>

结果:每次刷新结果不同,a,b,c,d的一个。


7.array_unique() 函数移除数组中的重复的值,并返回结果数组。

  1. <?php
  2. $a=array("a"=>"小马","b"=>"小张","c"=>"小马");
  3. print_r(array_unique($a));
  4. ?>

结果:Array ( [a] => 小马 [b] => 小张 )


8.array_rand() 函数从数组中随机选出一个或多个元素,并返回。

  1. <?php
  2. $a=array("小马","小张","小红","小王","小李");
  3. $random_keys=array_rand($a,3);
  4. echo $a[$random_keys[0]]."<br>";
  5. echo $a[$random_keys[1]]."<br>";
  6. echo $a[$random_keys[2]];
  7. ?>

结果:随机的三个(小马 小张 小红),每次刷新都不一样。


9.natcasesort() 函数用不区分大小写的自然顺序算法对给定数组中的元素排序。

  1. <?php
  2. $temp_name = array("zhangsan","Wangwu","lisi","Maliu","tianqi");
  3. natsort($temp_name);
  4. echo "自然排序:";
  5. print_r($temp_name);
  6. echo "<br />";
  7. natcasesort($temp_name);
  8. echo "不区分大小写的自然排序:";
  9. print_r($temp_name);
  10. ?>

结果:自然排序:Array ( [3] => Maliu [1] => Wangwu [2] => lisi [4] => tianqi [0] => zhangsan )
不区分大小写的自然排序:Array ( [2] => lisi [3] => Maliu [4] => tianqi [1] => Wangwu [0] => zhangsan )


10.uksort() 函数使用用户自定义的比较函数按照键名对数组排序,并保持索引关系。

  1. <?php
  2. function my_sort($a,$b)
  3. {
  4. if ($a==$b) return 0;
  5. return ($a<$b)?-1:1;
  6. }
  7. $arr=array("a"=>4,"b"=>2,"c"=>8,"d"=>6);
  8. uksort($arr,"my_sort");
  9. foreach($arr as $x=>$x_value)
  10. {
  11. echo "Key=" . $x . ", Value=" . $x_value;
  12. echo "<br>";
  13. }
  14. ?>

结果:
Key=a, Value=4
Key=b, Value=2
Key=c, Value=8
Key=d, Value=6


11.回调函数

11.1array_filter() 函数用回调函数过滤数组中的值。

  1. <?php
  2. $entry = array(
  3. 0 => 'xiaoma',
  4. 1 => false,
  5. 2 => -1,
  6. 3 => null,
  7. 4 => ''
  8. );
  9. print_r(array_filter($entry));
  10. ?>

结果:Array ( [0] => xiaoma [2] => -1 )


11.2array_map(): 为数组中的每个元素应用回调函数进行处理,返回新数组。

  1. <?php
  2. function myfunction($v)
  3. {
  4. return($v*$v);
  5. }
  6. $a=array(11,12,13,14,15);
  7. print_r(array_map("myfunction",$a));
  8. ?>

结果:Array ( [0] => 121 [1] => 144 [2] => 169 [3] => 196 [4] => 225 )


11.3array_reduce(): 迭代处理数组元素

  1. <?php
  2. function myfunction($v1,$v2)
  3. {
  4. return $v1 . "-" . $v2;
  5. }
  6. $a=array("草莓","苹果","香蕉");
  7. print_r(array_reduce($a,"myfunction"));
  8. ?>

结果:-草莓-苹果-香蕉


11.4array_walk(): 使用自定义回调对数组中成员逐个处理,返回布尔值

  1. <?php
  2. function myfunction($value,$key)
  3. {
  4. echo "这个键 $key 的值是 $value<br>";
  5. }
  6. $a=array("a"=>"草莓","b"=>"苹果","c"=>"香蕉");
  7. array_walk($a,"myfunction");
  8. ?>

结果:
这个键 a 的值是 草莓
这个键 b 的值是 苹果
这个键 c 的值是 香蕉


12.array_slice() 函数在数组中根据条件取出一段值,并返回。

  1. <?php
  2. $a=array("苹果","西瓜","草莓","菠萝","哈密瓜");
  3. print_r(array_slice($a,1,3));//从数组的第二个元素开始取出,并仅返回3个元素
  4. ?>

结果:Array ( [0] => 西瓜 [1] => 草莓 [2] => 菠萝 )


13.array_splice() 函数从数组中移除选定的元素,并用新元素取代它。

  1. <?php
  2. $a1=array("a"=>"苹果","b"=>"菠萝","c"=>"西瓜","d"=>"荔枝");
  3. $a2=array("a"=>"草莓","b"=>"橘子");
  4. array_splice($a1,0,2,$a2);
  5. print_r($a1);
  6. ?>

结果:Array ( [0] => 草莓 [1] => 橘子 [c] => 西瓜 [d] => 荔枝 )


总结:PHP数组是PHP必不可少的一部分,array函数也有很重要的作用,通过本次课学到了很多数组函数以及它们的使用方法。通过查询手册也看到了数组操作的基本函数、数组的分段和填充、数组与栈、数组与列队、回调函数、排序、计算、其他的数组函数等。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议