博客列表 >数组常用函数

数组常用函数

王佳祥
王佳祥原创
2020年07月14日 14:30:541346浏览

数组常用函数

一、与键相关的函数

1.array_keys():获取数组键名

  1. <?php
  2. $arr = ['姓名' => '张三','年龄' => 22,'性别' => '男'];
  3. print_r(array_keys($arr));


2.array_key_exists():判断某个键名是否存在,返回布尔值

  1. var_dump(array_key_exists('姓名',$arr));
  2. echo '<hr>';
  3. var_dump(array_key_exists('身高',$arr));


3.array_key_first():返回第一个键名

  1. //返回第一个键名
  2. echo array_key_first($arr);


4.array_key_last():返回最够一个键名

  1. //返回最后一个键名
  2. echo array_key_last($arr);


二、与值相关的数组函数

1.array_values():获取数组所有的值

  1. $arr = [1 => 100,'name' => '武松','age' => '31',20,200 => 50];
  2. print_r(array_values($arr));


2.in_array():判断某个值是否存在,返回布尔值

  1. var_dump(in_array('武松',$arr));
  2. echo '<hr>';
  3. var_dump(in_array('宋江',$arr));


3.array_search():找到了返回元素值对应的键名,找不到返回false

  1. //找到了返回元素值对应的键名,找不到返回false
  2. var_dump(array_search('css3',$arr));
  3. echo '<hr>';
  4. var_dump(array_search('武松',$arr));


4.arrar_unique():删除重复值

  1. $arr =['1' => '孙悟空','2' => '唐三藏','3' => '孙悟空','4' => '沙悟净'];
  2. print_r($arr);
  3. echo '<hr>';
  4. print_r(array_unique($arr));


5.数组的计算

  1. $arr = [2,2,3];
  2. echo '数组求和:'.array_sum($arr).'<hr>';
  3. echo '数组求积:'.array_product($arr);


三、栈与队列

  1. <?php
  2. //栈与队列
  3. //栈是添加与删除受限的一种数据结构,数据的增删仅允许在一端进行,LIFO,最后进先出
  4. $arr = [];
  5. //array_push:向数组尾部插入一个或多个元素
  6. echo '入栈:'.array_push($arr,1,2,3);
  7. print_r($arr);
  8. //array_pop():函数用来删除数组末尾的元素(出栈)返回值是删除的值
  9. echo '<br>出栈:'.array_pop($arr);
  10. echo '<br>出栈:'.array_pop($arr);
  11. echo '<br>出栈:'.array_pop($arr);
  12. //队列:先进先出
  13. //array_unshift():函数用于向数组插入新元素。新数组的值将被插入到数组的开头
  14. echo '<br>在栈的头部新增元素:'.array_unshift($arr,4,5,6).'<br>';
  15. print_r($arr);
  16. echo '<br>在栈的头部删除元素:'.array_shift($arr);
  17. echo '<br>在栈的头部删除元素:'.array_shift($arr);
  18. echo '<br>在栈的头部删除元素:'.array_shift($arr);
  19. //array_shift():删除数组中的第一个元素,并返回被删除元素的值


四、数组排序

1.sort():升序排列,键名重新生成

  1. <?php
  2. //数组的排序
  3. $arr = [100,'b','a','d',50,2,15,5];
  4. print_r($arr);
  5. echo '<br>';
  6. //将元素从低到高排列
  7. sort($arr);
  8. print_r($arr);


2.asort():按照值进行升序排列,键名不会重新生成

  1. //asort() 函数对关联数组按照值进行升序排序
  2. $arr = [100 => 10,10=>50,50=>20,'a' => 10];
  3. print_r($arr);
  4. echo '<br>';
  5. asort($arr);
  6. print_r($arr);


3.ksort():按键进行升序排列

  1. $arr = [100 => 10,10=>50,50=>20,'a' => 10];
  2. print_r($arr);
  3. echo '<br>';
  4. ksort($arr);
  5. print_r($arr);


4.krsort():按键进行降序排列

  1. $arr = [100 => 10,10=>50,50=>20,'a' => 10];
  2. print_r($arr);
  3. echo '<br>';
  4. krsort($arr);
  5. print_r($arr);


5.usort():自定义排序

  1. $arr = [20,5,62,45,90];
  2. print_r($arr);
  3. echo '<br>';
  4. usort($arr,function($a,$b){
  5. return $a - $b;
  6. });
  7. print_r($arr);


6.natsort():自然排序

  1. $arr = ['a5','a2','a8','a6'];
  2. print_r($arr);
  3. echo '<br>';
  4. natsort($arr);
  5. print_r($arr);


五、其它数组函数

1.array_slice():从数组中取出一部分元素

  1. <?php
  2. //array_slice():从数组中取出一部分元素
  3. $arr = ['姓名' => '张三','年龄' => 20,'身高' => 170,'爱好' => '打篮球'];
  4. //省略最后一个值默认获取所有值
  5. print_r(array_slice($arr,0));
  6. echo '<hr>';
  7. print_r(array_slice($arr,0,2));


2.array_splice():实现增删改

  1. $arr = [1,2,3,4,5,6];
  2. print_r($arr);
  3. //删除
  4. echo '<hr>';
  5. print_r(array_splice($arr,0,2));
  6. echo '<hr>';
  7. print_r($arr);
  8. //返回被删除元素组成的数组
  9. //替换
  10. echo '<hr>';
  11. print_r(array_splice($arr,0,2,[100,200]));
  12. echo '<hr>';
  13. print_r($arr);


3.array_combine():合并数组

  1. <?php
  2. $arr = ['孙悟空','猪八戒','沙悟净','白龙马'];
  3. $arr2 = [1,2,3,4];
  4. $arr3 = array_combine($arr,$arr2);
  5. print_r($arr3);


4.array_merge() 函数用于把一个或多个数组合并为一个数组

  1. print_r(array_merge($arr,$arr2));


5.array_filter():只返回元素可以转为true的元素

  1. <?php
  2. //array_filter():只返回元素可以转为true的元素
  3. $arr = [1,'name',true,false,0,'0',null,''];
  4. print_r($arr);
  5. print_r(array_filter($arr));


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

  1. //array_map():为数组中的每个元素应用指定的回调函数进行处理,并返回新数组
  2. $arr = ['name',[1,2,3],(new class{public $name = '张三';public $age = 22;}),100];
  3. $res = array_map(function($i){
  4. switch (gettype($i)){
  5. case 'object':
  6. $i = get_object_vars($i);
  7. $i = implode(',',$i);
  8. break;
  9. case 'array':
  10. $i = implode(',',$i);
  11. }
  12. return $i;
  13. },$arr);
  14. print_r($res);


7.extract():将关联数组拆分为变量

  1. <?php
  2. //$arr = ['cat','dog','pig','orange'];
  3. //extract():将关联数组拆分为变量
  4. $config = ['name' => '张三','age' => 23,'sex' => '男'];
  5. extract($config);
  6. echo $name,$age,$sex;


8.compact():将一组变量组装成关联数组

  1. //compact():将一组变量组装成关联数组
  2. $id = 1;
  3. $name = '张三';
  4. $sex = '男';
  5. print_r(compact('id','name','sex'));


学习总结

1.与键相关函数

  • array_keys():获取数组键名

  • array_key_exists():判断某个键名是否存在,返回布尔值

  • array_key_first():返回第一个键名

  • array_key_last():返回最够一个键名

2.与值相关的数组函数

  • array_values():获取数组所有的值

  • in_array():判断某个值是否存在,返回布尔值

  • array_search():找到了返回元素值对应的键名,找不到返回false

  • arrar_unique():删除重复值

3.栈与队列

  • 栈:先进后出

array_push:向数组尾部插入一个或多个元素(进栈)

array_pop():函数用来删除数组末尾的元素(出栈)返回值是删除的值

  • 队列:先进先出

array_unshift():函数用于向数组插入新元素,新数组的值将被插入到数组的开头

array_shift():删除数组中的第一个元素,并返回被删除元素的值

4.数组排序

  • sort():升序排列,键名重新生成

  • asort():按照值进行升序排列,键名不会重新生成

  • ksort():按键进行升序排列

  • krsort():按键进行降序排列

  • usort():自定义排序

  • natsort():自然排序

5.其它数组函数

  • array_slice():从数组中取出一部分元素

  • array_splice():实现增删改

  • array_combine():合并数组

  • array_merge() 函数用于把一个或多个数组合并为一个数组

  • array_filter():只返回元素可以转为true的元素

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

  • extract():将关联数组拆分为变量

  • compact():将一组变量组装成关联数组

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