Blogger Information
Blog 8
fans 0
comment 1
visits 11407
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组及其函数的理解
混混
Original
818 people have browsed it

1.数组是以键值对的形式存放在内存值,可以存放多个元素,有一维数组和多维数组的形式。

(1)数组的遍历一般使用循环的方法,主流使用foreach()函数更加简洁方便。
(2)数组可以存放多种元素,但是返回输出一般是为true的元素组成的数组,null,0,’’,false 这些都是返回false。

数组函数的运用:
array_merge():将多个数组合成一个数组
语法:array_merge(array1,array2,array3…)

max():返回数组中最大的值
语法:max(array);

min():返回数组中最小的值
语法:min(array)

array_keys():返回数组值得键
语法:array_keys(array,value,strict)//第一个参数必填,第二个参数为要查询的值,第三个为可能的值。

array_filter():用回调函数过滤数组中的元素。

实例:
统计5个小组,一个班级中,学习最好的,不及格的,最好的有几个,不及格的有几个,去除插班生后的成绩

  1. <?php
  2. $arr1=['彭彭'=>50,'刘刘'=>61,'allen'=>75,'kd'=>85,'td'=>90,'cheng'=>0];
  3. $arr2=['揪揪'=>73,'平平'=>46,'lbj'=>87,'kt'=>67,'mj'=>100,'qiu'=>''];
  4. $arr3=['飞飞'=>85,'阿飞'=>53,'刘德华'=>99,'周星驰'=>99,'黎明'=>95,'kkkk'=>null];
  5. $arr4=['吴彦祖'=>90,'陈冠希'=>86,'王祖贤'=>87,'张卫键'=>78,'张国荣'=>99];
  6. $arr5=['李小龙'=>100,'成龙'=>98,'李连杰'=>98,'甄子丹'=>95,'叶问'=>100];
  7. // printf('<pre>%s</pre>',print_r($arr1,true));
  8. $res=array_merge($arr1,$arr2,$arr3,$arr4,$arr5);//将每个小组的合成一个数组
  9. printf('<pre>%s</pre>',print_r($res,true));
  10. $count=array_sum($res)/count($res);//全班的平均成绩
  11. echo $res[1];
  12. echo '平均成绩是'.$count;
  13. echo '<hr>';
  14. echo '成绩最高的是'.max($res);//求数组中的最高值
  15. echo '******成绩最差的是'.min($res);//求数组的最小值
  16. echo '<hr>';
  17. $key=array_keys($res,99);
  18. echo implode(',',$key);
  19. echo '这几个很优秀的同学,在努力就可以得到满分了!';
  20. static $cmd=array();
  21. foreach($res as $key=>$value){
  22. if($value==max($res)){
  23. $cmd[]=$key;
  24. }
  25. }
  26. $stu=implode(',',$cmd);
  27. echo '<hr>';
  28. echo '取得最好成绩的分别是'.$stu;//遍历数组,取出其中满分的同学并转为字符串打印输出
  29. echo '<hr>';
  30. static $cot=array();
  31. $j=0;
  32. foreach($res as $key=>$value){
  33. if($value<60){
  34. $j++;
  35. $cot[]=$key;
  36. }
  37. }
  38. $t=implode(',',$cot);
  39. echo '不及格的同学有'.$j.'位','分别是:'.$t;////遍历数组,取出其中不及格的同学并转为字符串打印输出
  40. echo '<hr>';
  41. function text($var)
  42. {
  43. return $var==true;
  44. }
  45. $k=array_filter($res,"text");//使用回调函数去掉没有成绩的插班生,求出实际的平均成绩
  46. $cut=array_sum($k)/count($k);//去除插班生的平均成绩
  47. echo '去除插班生的平均成绩是'.$cut;
  48. printf('<pre>%s</pre>',print_r($k,true));
  49. ?>

输出结果:


2.array_splice() 函数从数组中移除选定的元素,并用新元素取代它。函数也将返回被移除元素的数组。

语法:array_splice(array,start,length,array)

array 必填,要处理的数组
start 必需。数值。规定删除元素的开始位置。
length,array 选填,规定被移除的元素个数,也是被返回数组的长度,以及带有要插入原始数组中元素的数组

实例:修改数组中为false的数据

  1. <?php
  2. $arr = [150, 'php',true, null, false, '', 0, '0'];
  3. foreach($arr as $key=>$value){
  4. if($value==false){
  5. array_splice($arr, $key,$key+1, ['此数据已更改,无法显示']);
  6. }
  7. }
  8. echo '<hr>';
  9. // $res=array_splice($arr, 2, [999]);
  10. printf('更改后的元素: <pre>%s</pre><hr>', print_r($arr, true));
  11. echo array_search(false,$arr);

输入结果:


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

实例:为不同的成绩评分

  1. $res = [30, 4, 82, 15, 20, 'abc', 'hello', 2, 46];
  2. $arr1=[92,85,100,71,39,52,63];
  3. $arr2=['优秀','优','良','一般','及格','不及格','差'];
  4. $arr3=rsort($arr1);
  5. $res=array_map(function($value1,$value2){
  6. return $value1.'----'.$value2;
  7. },$arr1,$arr2);
  8. printf('<pre>%s</pre><hr>', print_r($res, true));

输出结果:


总结:没有使用过太多的数组函数,不知道运用场景,不能举例说明,看手册可以看懂,但大部分都不知道如何运用!

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