博客列表 >数组函数的运用

数组函数的运用

零龙
零龙原创
2020年07月14日 19:38:07946浏览

数组函数

  • 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 将变量转为数组
  • 示例图
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议