欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP数组常用函数详细大全

程序员文章站 2022-03-07 19:21:34
...

1.数组常用函数

1.1 与键名相关

1.1.1 array_keys()

array_keys():函数返回包含数组中所有键名的一个新数组

  1. $arr=['id'=>1,'name'=>'pavin','age'=>24,'sex'=>'男'];
  2. print_r(array_keys($arr));

1.1.2 array_key_exists()

array_key_exists():函数是否存在指定的键名,如果键名存在则返回true,如果键名不存在则返回false

  1. $arr=['id'=>1,'name'=>'pavin','age'=>24,'sex'=>'男'];
  2. echo array_key_exists('sex',$arr)?'存在':'不存在','<hr>';

1.1.3 array_key_first()与array_key_last()

array_key_first():获取第一个键
array_key_last():获取最后一个键

  1. $arr=['id'=>1,'name'=>'pavin','age'=>24,'sex'=>'男'];
  2. echo array_key_first($arr);
  3. echo array_key_last($arr);

运行程序如图:
PHP数组常用函数详细大全

1.2 与值相关

1.2.1 array_values()

array_values():返回数组的元素的值组成的索引数组

  1. $arr=[3=>10,0=>'html','id'=>2,'name'=>'Pavin',10=>10];
  2. print_r(array_values($arr));

1.2.2 in_array()

in_array():函数搜索数组中是否存在指定的值

  1. $arr=[3=>10,0=>'html','id'=>2,'name'=>'Pavin',10=>10];
  2. echo in_array('Pavin',$arr)?'找到了':'没有','<hr>';

1.2.3 array_search()

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

  1. $arr=[3=>10,0=>'html','id'=>2,'name'=>'Pavin',10=>10];
  2. var_dump(array_search('Pavin',$arr));

运行如图所示:
PHP数组常用函数详细大全

1.3 栈与队列

栈:是添加与删除受限的一种结构,数据的增删仅允许在一端进行,LIFO,后进先出
队列:满足先进先出(FIFO)

  1. //在栈的尾部进行增删
  2. $stack=[];
  3. echo array_push($stack,10,20,30,45),'<hr>';
  4. print_r($stack);
  5. echo '<hr>';
  6. echo array_pop($stack),'<hr>';
  7. //在栈的头部进行增删
  8. echo array_unshift($stack,'php','mysql');
  9. echo '<hr>';
  10. print_r($stack);
  11. echo array_shift($stack);
  12. echo '<hr>';
  13. //队:先进先出FIFO
  14. $queue=[];
  15. //尾部进,头部出 array_push,array_shift
  16. //尾部进队
  17. array_push($queue,10,20,30);
  18. print_r($queue);
  19. echo '<hr>';
  20. //头部出队,对照栈,栈尾部进,尾部出
  21. echo array_shift($queue);
  22. // echo array_shift($queue);
  23. // echo array_shift($queue);
  24. //头部进,尾部出 ,array_unshift,array_pop
  25. array_unshift($queue,'one','two','three');
  26. echo '<hr>';
  27. print_r($queue);
  28. echo '<hr>';
  29. echo array_pop($queue);

如图所示:
PHP数组常用函数详细大全

1.4 排序

1.4.1 sort

sort():函数对数值细分进行升序排序

  1. $arr=[30,4,38,14,'ava','avd',2,35];
  2. //默认按值的升序
  3. sort($arr);
  4. print_r($arr);

PHP数组常用函数详细大全

1.4.2 ksort

ksort():函数对关联按照遵循键名进行升序排序

  1. $arr=['e'=>10,'a'=>30,'p'=>50];
  2. //降序
  3. ksort($arr);
  4. print_r($arr);

PHP数组常用函数详细大全

1.5 array_slice()

array_slice() 函数返回数组中的选定部分

  1. $stu=['id'=>101,'name'=>'无极','age'=>28,'course'=>'php','grade'=>80];
  2. $res=array_slice($stu,0);
  3. $res=array_slice($stu,0,2);
  4. print_r($res);

1.5.1 array_splice

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

  1. //array_splice($arr,...):实现增删改
  2. $arr=[10,28,8,33,2,34,56,23];
  3. print_r($arr);
  4. echo '<hr>';
  5. //删除
  6. $res1=array_splice($arr,1,2);
  7. //返回被删除的元素组成的数组
  8. print_r($res1);
  9. echo '<hr>';
  10. print_r($arr);
  11. echo '<hr>';
  12. //替换
  13. $res2=array_splice($arr,1,2,[888,999]);
  14. print_r($res2);
  15. echo '<hr>';
  16. print_r($arr);
  17. echo '<hr>';
  18. //新增
  19. $res3=array_splice($arr,1,0,[888,999]);
  20. print_r($res3);
  21. echo '<hr>';
  22. print_r($arr);

PHP数组常用函数详细大全

1.6 array_combine和array_merge

array_combine():函数通过合并两个副本来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值

  1. //合并
  2. $keys=['type','host','dbname','username','password'];
  3. $values=['mysql','localhost','phpedu','root','root'];
  4. print_r(array_combine($keys,$values));

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

  1. $a1=array("a"=>"This","b"=>"is");
  2. $a2=array("c"=>"a","d"=>"apple");
  3. print_r(array_merge($a1,$a2));

PHP数组常用函数详细大全

1.7 array_filte和array_map

  1. // 1.array_filter():只返回元素可以转为为true的元素组成的数组
  2. $arr=[150,'php',true,[4,5,6],(new class{}),[],null,false,'',0,'0'];
  3. //[],null,false,'',0,'0':转为false
  4. $res=array_filter($arr);
  5. $res=array_filter($arr,function($item){
  6. return is_scalar($item);
  7. });
  8. print_r($res);
  9. // 2.array_map():为数组中的每个元素应用指定的回调函数进行处理,并返回新数组
  10. $arr=['php',[2,3,4],(new class{public $name='电脑';public $price=999;}),15,20];
  11. //任务:如果数组元素是对象,则输出它的属性,如果是数组,则将它转为字符串输出,否则直接输出
  12. $res=array_map(function($item){
  13. //判断当前元素是否是对象或数组
  14. switch(gettype($item)){
  15. case 'object':
  16. $item=get_object_vars($item);
  17. case 'array':
  18. $item=implode(',',$item);
  19. }
  20. return $item;
  21. },$arr);
  22. print_r($res);

PHP数组常用函数详细大全

1.8 implode和extract以及compact

  1. <?php
  2. $arr=['huawei','xiaomi','apple','oppo','vivo'];
  3. // implode():数组转为字符串
  4. echo implode(',',$arr);
  5. echo '<hr>';
  6. // extract():将关联数组拆分为变量
  7. $config=['type'=>'mysql','host'=>'localhost','dbname'=>'phpedu','charset'=>'utf8'];
  8. extract($config);
  9. echo $type,$host,$dbname,$charset;
  10. echo '<hr>';
  11. //compact():将一组变量再组装成关联数组
  12. $id=1;
  13. $username='peter zhu';
  14. $gender='男';
  15. print_r(compact('id','username','gender'));
  16. ?>

PHP数组常用函数详细大全