Blogger Information
Blog 43
fans 1
comment 0
visits 33934
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP 数组函数
蔚蓝世纪
Original
836 people have browsed it

一、什么是数组?

  1. 数组是特殊的变量,它可以同时保存一个以上的值。数组能够在单一变量名中存储许多个值,并且我们能够通过引用索引号来访问某个值。
  2. PHP 中,array() 函数用于创建数组,其语法形式为:array();

二、数组的分类

在 PHP 中,有三种数组类型:

  1. 索引数组:带有数字索引的数组
  2. 关联数组:带有指定键的数组
  3. 多维数组:包含一个或多个数组的数组
代码举例:
  1. //这是一个索引数组
  2. $fruits = array ("apples","oranges","bananas","pears");
  3. printf('<pre>%s</pre>',print_r($fruits,true));
  4. echo '<hr>';
  5. //这是一个关联数组
  6. $student = array("class"=>"一一班","name" => "王二小", "age" => "7");
  7. printf('<pre>%s</pre>',print_r($student,true));
  8. echo '<hr>';
  9. //这是一个多维数组
  10. $city = array(
  11. '河南省' => array(
  12. '郑州市',
  13. '新郑市',
  14. '开封市',
  15. '洛阳市',
  16. '南阳市'=> array(
  17. '卧龙区',
  18. '宛城区',
  19. '高新区',
  20. '淅川县',
  21. ),
  22. ),
  23. '河北省' => array(
  24. '石家庄市',
  25. '唐山市',
  26. '秦皇岛市',
  27. '邯郸市',
  28. '邢台市',
  29. ),
  30. '陕西省' => array(
  31. '西安市',
  32. '宝鸡市',
  33. '咸阳市',
  34. '铜川市',
  35. '渭南市',
  36. ),
  37. );
  38. printf('<pre>%s</pre>',print_r($city,true));
效果展示:

三、十几常用数组函数

1.array_combine()函数

作用:通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值
语法:array_combine(keys,values);

代码举例:
  1. $name = array("赵一","钱二","孙三","王四");
  2. $number = array("11号","43号","25号","41号");
  3. $he = array_combine($name,$number);
  4. printf('<pre>%s</pre>',print_r($he,true));
效果展示:

2.array_fill()函数

作用:用键值填充数组
语法:array_fill(index,number,value);

代码举例:
  1. $a = array_fill(1,2,"王二小");
  2. printf('<pre>%s</pre>',print_r($a,true));
效果展示:

3.array_chunk()函数

作用:把数组分割为新的数组块。其中每个数组的单元数目由 size 参数决定。
语法:array_chunk(array,size,preserve_key);

代码举例:
  1. $name = array("赵一","钱二","孙三","王四");
  2. $number = array("11号","43号","25号","41号");
  3. $he = array_chunk($name,1);
  4. printf('<pre>%s</pre>',print_r($he,true));
  5. echo '<hr>';
  6. $name = array("赵一","钱二","孙三","王四");
  7. $number = array("11号","43号","25号","41号");
  8. $he = array_chunk($name,2);
  9. printf('<pre>%s</pre>',print_r($he,true));
  10. echo '<hr>';
  11. $name = array("赵一","钱二","孙三","王四");
  12. $number = array("11号","43号","25号","41号");
  13. $he = array_chunk($name,3);
  14. printf('<pre>%s</pre>',print_r($he,true));
  15. echo '<hr>';
  16. $name = array("赵一","钱二","孙三","王四");
  17. $number = array("11号","43号","25号","41号");
  18. $he = array_chunk($name,4);
  19. printf('<pre>%s</pre>',print_r($he,true));
####效果展示:



4.array_diff()函数

作用:比较两个数组的键值,并返回差集
语法:array_diff(array1,array2,array3…);

代码举例:
  1. $a = array("red" => "红色", "yellow" => "黄色", "blue" => "蓝色","pink" =>"粉色");
  2. $b = array("black" => "黑色", "white" => "白色", "blue" => "蓝色","green"=>"绿色");
  3. $c = array("red" => "红色", "blue" => "蓝色", "magenta" => "洋红色","gray" =>"灰色");
  4. // $result = array_diff($a,$b,$c);
  5. printf('<pre>%s</pre>',print_r(array_diff($a,$b,$c),true));
效果展示:其他数组都与第一数组进行比较,并且返回第一数组与其他 数组中不重复的值。

5.array_search()函数

作用:在数组中搜索某个键值,并返回对应的键名。
语法:array_search(value,array,strict);

代码举例:
  1. $a = array("red" => "红色", "yellow" => "黄色", "blue" => "蓝色","pink" =>"粉色");
  2. echo array_search("黄色",$a),'<br>';
  3. echo array_search("粉色",$a),'<br>';
  4. echo array_search("红色",$a),'<br>';
  5. echo array_search("蓝色",$a),'<br>';
效果展示:

6.array_sum()函数

作用:返回数组中所有值的和
语法:array_sum(arra)

代码举例:
  1. $a=array("苹果"=>"56","西瓜"=>"12","香蕉"=>"35");
  2. echo array_sum($a);
效果展示:

7.array_intersect()函数

作用:用于比较两个(或更多个)数组的键值,并返回交集。
语法:array_intersect(array1,array2,array3…);

代码举例:
  1. $a = array("red" => "红色", "yellow" => "黄色", "blue" => "蓝色","pink" =>"粉色");
  2. $b = array("black" => "黑色", "white" => "白色", "blue" => "蓝色","green"=>"绿色");
  3. $c = array("orange" => "橙色", "blue" => "蓝色", "magenta" => "洋红色","gray" =>"灰色");
  4. $result = array_intersect($a,$b,$c);
  5. print_r($result);
效果展示:

8.array_rand()函数

作用:返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组。
语法:array_rand(array,number);

代码举例:
  1. $family = array("father","mother","sister","brother");
  2. printf('<pre>%s</pre>',print_r($family,true));
  3. $family = array("father","mother","sister","brother");
  4. $rand = array_rand($family,2);
  5. echo $family[$rand[0]]."<br>";
  6. echo $family[$rand[1]]."<br>";
  7. echo $family[$rand[2]]."<br>";
  8. echo $family[$rand[3]]."<br>";
  9. echo $family[$rand[4]]."<br>";
效果展示:规定了随机返回2个数值,所以下面打印再多,也只是在数值中随机显示2个.

9.array_pop()函数

作用:删除数组中的最后一个元素
语法:array_pop(array);

代码举例:
  1. $a = array(1,3,5,7,9);
  2. print_r(array_pop($a));// 打印被删除的元素
  3. printf('<pre>%s</pre>',print_r($a,true));//打印处理之后的数组
效果展示:

10.array_flip()函数

作用:用于反转/交换数组中所有的键名以及它们关联的键值。
语法:array_flip(array);

代码举例:
  1. $color = array("red" => "红色", "yellow" => "黄色", "blue" => "蓝色","pink" =>"粉色");
  2. printf('<pre>%s</pre>',print_r($color,true));
  3. $color = array("red" => "红色", "yellow" => "黄色", "blue" => "蓝色","pink" =>"粉色");
  4. $result = array_flip($color);
  5. printf('<pre>%s</pre>',print_r($result,true));
效果展示:

四、四个数组回调函数

1.array_filter()函数

作用:用回调函数过滤数组中的元素。该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。
语法:array_filter(array,callbackfunction);

代码举例:
  1. function test($x)
  2. {
  3. return($x);
  4. }
  5. $a=array("a","b",7,3,16);
  6. print_r(array_filter($a,"test"));
  7. echo '<hr>';
  8. $arr = [50, 'color',['apple','pears','orange'], true, null, false, '', 0, '0'];
  9. $res = array_filter($arr,function($item){
  10. return $item;
  11. });
  12. printf('<pre>%s</pre><hr>', print_r($res, true));
效果展示:

2.array_map()函数

作用:array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。
回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
语法:array_map(myfunction,array1,array2,array3…);

代码举例:
  1. function myvalue($x,$y)
  2. {
  3. if ($x===$y)
  4. {
  5. return "same";
  6. }
  7. return "different";
  8. }
  9. $a=array("10","8","24");
  10. $b=array("5","8","24");
  11. $c=array("5","9","24");
  12. print_r(array_map("myvalue",$a,$b));
  13. echo '<br>';
  14. print_r(array_map("myvalue",$b,$c));
效果展示:

3.array_reduce()函数

作用:向用户自定义函数发送数组中的值,并返回一个字符串。
语法:array_reduce(array,myfunction,initial);

代码举例:
  1. function diy($x,$y)
  2. {
  3. return $x."---".$y;
  4. }
  5. $a=array("apple","bread","rice","pear");
  6. $b=array("china","henan","nanyang","wolong");
  7. print_r(array_reduce($a,"diy"));
  8. print_r(array_reduce($b,"diy"));
效果展示:

4.array_walk()函数

作用:对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
语法:array_walk(array,myfunction,userdata…);

代码举例:
  1. function color($v,$k)
  2. {
  3. echo "The $k are $v .<br>";
  4. }
  5. $a=array("flowers"=>"red","trees"=>"green","cups"=>"blue");
  6. $res2=array_walk($a,"color");
  7. printf('<pre>%s</pre><hr>', print_r($res2,true));
效果展示:

五、array_slice()函数和array_splice()函数

1.array_slice()函数

作用:在数组中根据条件取出一段值,并返回
语法:array_slice(array,start,length,preserve);

代码举例:
  1. $family = array("father","mother","sister","brother");
  2. printf('<pre>%s</pre>',print_r(array_slice($family,0,2),true));
  3. printf('<pre>%s</pre>',print_r(array_slice($family,1,3),true));
效果展示:

2.array_splice()函数

作用:从数组中移除选定的元素,并用新元素取代它。
语法:array_splice(array,start,length,array)

代码举例:
  1. $a = array("red" => "红色", "yellow" => "黄色", "blue" => "蓝色","pink" =>"粉色");
  2. $b = array("灰色","洋红色", "黑色", "白色");
  3. array_splice($a,0,2,$b);
  4. printf('<pre>%s</pre>',print_r(array_splice($a,0,2,$b),true));
  5. array_splice($a,1,3,$b);
  6. printf('<pre>%s</pre>',print_r(array_splice($a,1,3,$b),true));
效果展示:

六、总结

1.数组函数与字符串函数可以对照学习,有些功能是类似的,也方便记忆。
2.数组函数因为要编写的代码相对比字符串多,易出错,要注意书写和符号,尤其要注意数组之间的嵌套关系。
3.array_slice()函数只是选取一段元素,而array_splice()函数会用新的元素替代选取的那段元素。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:数组函数看上去挺多的, 但常用的并不多
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post