Blogger Information
Blog 55
fans 3
comment 0
visits 54652
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数组常用函数
王佳祥
Original
1347 people have browsed it

数组常用函数

一、与键相关的函数

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():将一组变量组装成关联数组

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