Blogger Information
Blog 56
fans 1
comment 0
visits 62187
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组函数的运用
零龙
Original
940 people have browsed it

数组函数

  • array_values($arr):获得数组的值
  • array_keys($arr):获得数组的键名
  • array_flip($arr):数组中的值与键名互换,有重复前面的会被后面的覆盖
  • in_array(‘user’,$arr):在数组中检索user
  • array_search(‘user’,$arr):在数组中检索user,如果存在返回键名
  • array_key_exists(‘user’,$arr)检索给定的键名是否存在数组中
  • isset($arr[user]):检查给定的键名是否存在数组中数组的内部指针
  • extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值
  • array_slice($arr,0,3);可以将数组中的一段取出,此函数忽略键名
  • array_splice($arr,0,3,array(“black”,”maroon”));可以将数组中的一段取出,与上个函数不同在于返回的序列从原数组中删除分割多个数组
  • array_chunk($arr,3,TRUE);可以将一个数组分割成多个,TRUE为保留原数组的键名数组的填充
  • array_pad($arr,5,’x’);将一个数组填补到制定长度
  • array_push($arr,”apple”,”pear”);将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
  • array_pop($arr);将数组栈的最后一个元素弹出(出栈)
  • array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改为从零技术,文字键名不变)
  • array_unshift($arr,”a”,array(1,2));在数组的开头插入一个或多个元素
  • array_mpa(“function”,$arr1,$arr2);可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)
  • sort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
  • rsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
  • usort($arr,”function”);使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序
  • asort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
  • arsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
  • uasort($arr,”function”);使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序通过键名对数组排序
  • ksort($arr);按照键名正序排序
  • krsort($arr);按照键名逆序排序
  • uksort($arr,”function”);使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)
  • natsort($arr);自然排序(忽略键名)
  • natcasesort($arr);自然排序(忽略大小写,忽略键名)
  • array_sum($arr);对数组内部的所有元素做求和运算数组的合并
  • array_merge($arr1,$arr2);合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)

    数组函数示例

  1. $arr = ['id'=>110,'name'=>'admin','email'=>'575499@qq.com','xh'=>110];
  2. print_r(array_keys($arr));
  3. //提取键
  4. echo "<br>";
  5. echo array_key_exists('name',$arr) ? '存在' :'不存在','<br>';
  6. //判断键名是否存在
  7. echo array_key_first($arr);
  8. //查数组第一个键
  9. echo "<br>";
  10. echo array_key_last($arr);
  11. //查数组最后一个键
  12. echo "<br>";
  13. $arr1= ['1'=>1,'0'=>0,'3'=>'3','5'=>5,'4'=>4,'2'=>2];
  14. print_r(array_values($arr1));
  15. echo "<br>";
  16. // 返回数组的元素的值组成的所有数组,对键排序
  17. echo in_array('js',$arr)? '找到了':'没有','<br>';
  18. //判断数组值是否存在
  19. print_r(array_search('admin',$arr));
  20. //判断数组值是否存在返回键品
  21. echo "<br>";
  22. print_r(array_unique($arr));
  23. //对数组重复的数据清除。
  24. echo "<br>";
  25. $arr2=[1,2,3,5,6,7];
  26. echo array_sum($arr2);
  27. //数组内的数组相加,字符串会被转换为整数,
  28. echo "<br>";
  29. echo array_product($arr2);
  30. //数组内的数组相乘
  31. echo "<br>";
  32. $arr3 =[];
  33. array_push($arr3,20,30,40);
  34. print_r($arr3);
  35. echo "<br>";
  36. echo array_pop($arr3);
  37. //在栈的尾部进行增删
  38. echo "<br>";
  39. $arr3 =[];
  40. array_unshift($arr3,'html','css','js','php');
  41. print_r($arr3);
  42. echo array_shift($arr3);
  43. echo "<br>";
  44. //在栈的头部进行增删
  45. $arr3=[];
  46. array_unshift($arr3,'html','css','js','php');
  47. echo array_pop($arr3);
  48. //头进尾出 array_unshift + array_pop
  49. echo "<br>";
  50. $arr3=[];
  51. array_push($arr3,'html','css','js','php');
  52. echo array_shift($arr3);
  53. //尾进头出 array_push + array_shift
  • 示例图:
  1. <?php
  2. $arr =['q','t',3,2,1,4,6,5,'a','y',9];
  3. sort($arr); //对数组按字母进行升序排序
  4. print_r($arr);
  5. echo "<br>";
  6. rsort($arr); //对数值数组进行降序排序。
  7. print_r($arr);
  8. echo "<br>";
  9. krsort($arr); //对关联数组按照键名进行降序排序。
  10. print_r($arr);
  11. echo "<br>";
  12. $arr = [];
  13. $arr = [3,54,67,4,2,7,8];
  14. usort($arr,function($a,$b) //自定义排序,通过$a-$b调换位置升序和降序
  15. {
  16. return $a - $b;
  17. });
  18. print_r($arr);
  19. natsort($arr); //自然排序
  • 示例图
  1. <?php
  2. $arr =['id'=>110,'name'=>'孙悟空','age'=>98,'sex'=>'男'];
  3. $res=array_slice($arr,-2,1);
  4. print_r($res);
  5. // array_slice 取数组中的值,1,2 1表示位置,2表示个数
  6. // -2,1 -2表示从尾数,1表示个数
  7. echo "<br>";
  8. $arr=[];
  9. $arr=[3,5,1,5,3,6,8,12,32,13,42];
  10. $rs =array_splice($arr,2,1); //删除第二个开始的1个数值
  11. $rs =array_splice($arr,1,2,[11,22]);//修改从第二位置的2个
  12. $rs =array_splice($arr,1,0,[121,22]);//新增从第二位置新增2个
  13. echo "<br>";
  14. print_r($arr);
  15. echo "<hr>";
  16. $user =['id','username','sex','age','email','add'];
  17. $value =[99,'孙悟空','男',599,'qtds@qq.com','广东省花果山市水帘洞小区1栋'];
  18. print_r(array_combine($user,$value));
  19. //两个数组的键和值链接 array_combine()
  20. echo "<br>";
  21. print_r(array_merge($user,$value));
  22. //两个数组的值链接 array_merge()
  • 示例图
  1. <?php
  2. $arr=[99,'HTML',true,[7,65,8],(new class{}),[],null,false,'',0,'0'];
  3. $res=array_filter($arr,function($item)
  4. {
  5. return $item;
  6. });
  7. //回调函数过滤数组中的元素返回true和false
  8. //[],null,false,'',0,'0' PHP中都属于false
  9. $res =array_filter($arr);
  10. $res =array_filter($arr,function($item)
  11. {
  12. return is_scalar($item);
  13. });
  14. //is_scalar用于检测变量是否是一个标量。时标量返回true
  15. print_r($res);
  16. echo"<hr>";
  17. //array_map()为数组中的每个元素应用指导的回调函数进行处理,并返回新数组
  18. $arr=['HTML',[3,2,1],(new class{public $name='孙悟空';public $age=99;}),88];
  19. //对$arr数组元素是对象,则输出它的属性,如果是数组,则将它转为字符串输出,否则直接输出
  20. $res= array_map(function($item){
  21. switch(gettype($item)){
  22. case 'object':
  23. $item = get_object_vars($item);
  24. $item = implode(', ',$item);
  25. break;
  26. case 'array' :
  27. $item = implode(', ',$item);
  28. }
  29. return $item;
  30. //判断当前元素是对象还是数组
  31. },$arr);
  32. print_r($res);
  • 示例图
  1. <?php
  2. $arr = ['name','password','sex','age','add'];
  3. echo implode(',',$arr);
  4. //implode 将数组转换为字符串
  5. echo "<br>";
  6. $user =['id'=>11,'username'=>'孙悟空','sex'=>'男','age'=>99,'add'=>'广东省花果山市水帘洞小区1栋'];
  7. extract($user);
  8. echo $username,$sex,$age,$add;
  9. //将关联数组拆分为变量
  10. echo "<br>";
  11. $id= 11;
  12. $username='孙悟空';
  13. $sex ='男';
  14. $age = 99;
  15. $add ='广东省花果山市水帘洞小区1号';
  16. $res = compact('id','username','sex','age','add');
  17. print_r($res);
  18. //compact 将变量转为数组
  • 示例图
Correcting teacher:GuanhuiGuanhui

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