博客列表 >数组函数练习

数组函数练习

暝皑祯π_π
暝皑祯π_π原创
2020年04月28日 14:49:58686浏览

数组函数

  1. <?php
  2. // 检查指定的键名是否存在于数组中
  3. // array_key_exists('键名','数组')
  4. $a=array('Volvo'=>'XC90','BMW'=>'X5');
  5. if (array_key_exists('Volvo',$a)):
  6. echo '键存在!';
  7. else:
  8. echo '键不存在!';
  9. endif;
  10. // 搜索数组中给定的值并返回键名
  11. // array_search('查找的值','搜索的数组')
  12. $a=array('a'=>'red','b'=>'green','c'=>'blue');
  13. echo array_search('red',$a);
  14. // 比较两个数组的键值,并返回交集
  15. // array_intersect('数组1','数组2')
  16. $a1=array('a'=>'red','b'=>'green','c'=>'blue','d'=>'yellow');
  17. $a2=array('e'=>'red','f'=>'green','g'=>'blue');
  18. $result=array_intersect($a1,$a2);
  19. print_r($result);
  20. // 比较两个数组的键名和键值,并返回交集
  21. $a1=array('a'=>'red','b'=>'green','c'=>'blue','d'=>'yellow');
  22. $a2=array('a'=>'red','b'=>'green','c'=>'blue');
  23. $result=array_intersect_assoc($a1,$a2);
  24. print_r($result);
  25. echo '<hr>';
  26. // list — 把数组中的值赋给一组变量
  27. // list('数组')
  28. $rep = ['red','green','blue'];
  29. list($a,$b,$c) = $rep;
  30. echo $a . $b . $c;
  31. echo '<hr>';
  32. // compact()将一组变量名值对拼装成一个惯量数组键值对
  33. // compact('变量1','变量2','变量3',....)
  34. $firstname = 'Bill';
  35. $lastname = 'Gates';
  36. $age = '60';
  37. $result = compact('firstname', 'lastname', 'age');
  38. print_r($result);
  39. echo '<hr>';
  40. // array_fill()用给定的值填充数组
  41. // array_fill('数组的第一个索引','元素个数','填充数组所使用的值')
  42. print_r(array_fill(0,4,'a'));
  43. echo '<hr>';
  44. // array_fill_keys():使用指定的键和值填充数组
  45. $keys=['a','b','c','d'];
  46. $values = ['red','green','blue'];
  47. // $values为数组时返回的时一个二位数组
  48. $a1=array_fill_keys($keys,$values);
  49. print_r($a1);
  50. echo '<hr>';
  51. // array_pad()用值将数组填补到指定长度
  52. // array_pad('数组','元素的长度','插入的长度')
  53. $a=array('red','green');
  54. print_r(array_pad($a,5,'blue'));
  55. // 负数表示从数组的左边开始插入数据
  56. print_r(array_pad($a,-5,'blue'));
  57. echo '<hr>';
  58. echo '<hr>';

回调函数

  1. // array_filter()用回调函数过滤数组中的单元
  2. // array_filter('变量','匿名函数')
  3. // 依次将$pdm数组中的每个值传递到匿名函数。如果函数返回 true,则$pdm数组的当前值会被包含在返回的结果数组中。数组的键名保留不变
  4. $pdm = ['a'=>'red','b'=>'green','c'=>'blue','f' => 'NULL', 'd'=>'yellow' ,'e'=>'0'];
  5. print_r(array_filter($pdm , function($item){
  6. // 当$item==='0'为真时,返回数组的键值
  7. return $item ==='0';
  8. }));
  9. echo '<hr>';
  10. // array_map(): 为数组的每个元素应用回调函数
  11. // array_map('匿名函数','变量')
  12. // 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组
  13. // 可以使用多个数组
  14. $ku = ['a'=>'12', 'b'=>'老师','c'=>'学生'];
  15. print_r(array_map(function($n)
  16. {
  17. if($n ==='12'){
  18. return '888';
  19. }else{
  20. return $n;
  21. }
  22. },$ku));
  23. echo '<hr>';
  24. // array_walk() 使用用户自定义函数对数组中的每个元素做回调处理
  25. // array_walk('输入的数组','匿名函数','可选第三个参数')
  26. // 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数
  27. $a=array("a"=>"red","b"=>"green","c"=>"blue");
  28. array_walk($a,function($value,$key,$p)
  29. {
  30. echo "$key $p $value<br>";
  31. },"has the value");
  32. echo '<hr>';
  33. // array_reduce() 函数用回调函数迭代地将数组简化为单一的值
  34. // array_reduce('输入的数组','匿名函数','可选第三个函数')
  35. // 如果指定第三个参数,则该参数将被当成是数组中的第一个值来处理,或者如果数组为空的话就作为最终返回值
  36. $num = [1,2,3,4];
  37. print_r(array_reduce($num,function($a,$b)
  38. {
  39. return $a + $b;
  40. }));
  41. echo '<hr>';

array_slicearray_splice

  1. // array_slice() 从数组中取出一部分
  2. // array_slice('输入的数组','取值的起始位置','取值的终点位置','布尔值')
  3. // 取值位置为负数代表取值方向,正数从左边开始,负数从右边开始
  4. // 终点位置为负数代表这个位置左边的一个取值区域
  5. // 布尔值改变索引方式
  6. $lan =[1,2,3,4,'red','green','blue'];
  7. print_r(array_slice($lan,2,2,'turn'));
  8. echo '<hr>';
  9. // array_splice()删除数组中的某一部分并用其它值取代
  10. // array_splice('输入的数组','取值的起点','取值的终点','替换的值,多个值用数组')
  11. // 返回值是被删除的数据
  12. $lan =[1,2,3,4,'red','green','blue'];
  13. print_r(array_splice($lan,2,3,['yello','black','witch']));
  14. // 打印的是修改后的内容
  15. print_r($lan);

总结

回调函数:把一个匿名函数当成一个函数的参数来使用

队列: 先进先出, 最先插入的数据最先出来, FIFO, 添
加与删除允许在二端进行

栈: 后进先出, 最后进入的最先出来, LIFO, 添加与
删除受限,只允许在一端进行

参数的负数;影响到取值的起始位置和取值方向还有取值区域

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