博客列表 >部分常用数组函数

部分常用数组函数

简行
简行原创
2020年07月14日 18:05:24669浏览

一.数组常用键值函数

1.数组常用键名函数

  1. <?php
  2. $array = ['id'=>6,"shopname"=>"长江7号","phone"=>15635673557];
  3. //数组常用键名函数
  4. //array_keys(数组):获取数组的所有键名,返回数组; 而key(数组)是按指定返回单个元素键名
  5. print_r(array_keys($array));
  6. echo "<br>";
  7. // array_key_exists:判断键名否存在数组中,返回true或false
  8. echo array_key_exists("shopname",$array)?"有":"没有";
  9. echo "<br>";
  10. // array_key_first:获取数组第一个键名,返回键名 PHP版本7.3后可使用
  11. echo array_key_first($array);
  12. echo "<br>";
  13. // array_key_first:获取数组最后一个键名,返回键名 PHP版本7.3后可使用
  14. echo array_key_last($array);
  15. echo "<hr>";

2.组常用值函数

  1. <?php
  2. //数组常用值函数
  3. $arr = ['id'=>6, 3 => '商店', "shopname"=>"长江7号", "phone"=>15635673557, 30,"商店"];
  4. //array_values(数组):获取数组的所有值,返回数组;
  5. print_r(array_values($arr));
  6. echo "<br>";
  7. // in_array:判断值否存在数组中,返回true或false
  8. echo in_array("商店",$arr)?"存在":"不存在";
  9. echo "<br>";
  10. // array_search:获取元素值对应的键名,找不到返回布尔false
  11. echo array_search("长江7号",$arr);
  12. echo "<br>";
  13. //array_unique:剔除相同值,返回新的数组(保留最先的相同值,提出后面相同值)
  14. print_r(array_unique($arr));
  15. echo "<hr>";

二.栈和队列(用数组函数演示)

1.栈: 是添加与删除受限的一种数据结构,数据的增删仅允许在一端进行, LIFO,最后进最先出

  1. <?php
  2. $stack_arr = [];
  3. // 1.在栈的尾部进行进栈与退栈(增删)
  4. // array_push(数组,元素1,元素2,....):向数组尾部添加一个或多个元素(进栈),然后返回新数组的长度。
  5. echo '数组长度:'.array_push($stack_arr,111,222,333),"----->";
  6. print_r($stack_arr);
  7. echo "<br>";
  8. // array_pop(数组):删除数组中的最后一个元素(退栈,取出元素),返回删除的元素值,当没有元素时,则返回null。
  9. echo '删除元素:'.array_pop($stack_arr);
  10. echo "<br>";
  11. // 2.在栈的头部进行增删
  12. // array_unshift(数组,元素1,元素2,....):向数组头部添加一个或多个元素,然后返回新数组的长度。
  13. echo '数组长度:'.array_unshift($stack_arr, 'one', 'two',"三"),"--->";
  14. print_r($stack_arr);
  15. echo "<br>";
  16. // array_shift:删除(取出)数组中的第一个元素,并返回被删除(取出)元素的值
  17. echo '删除元素:'.array_shift($stack_arr);
  18. echo "<hr>";

2.队列: 先进先出FIFO

  1. <?php
  2. $arr = [];
  3. // 尾部进队 + 头部出队, array_push + array+shift
  4. array_push($arr, "AAA","BBB",'CCC');
  5. print_r($arr);
  6. echo "<br>";
  7. // 头部出队,对照栈,栈尾部进,尾部出
  8. echo array_shift($arr);
  9. print_r($arr);
  10. echo "<br>";
  11. // 头部进队+尾部出队 + , array_unshift + array+pop
  12. array_unshift($arr, 'ddd', 'eee', 'fff');
  13. print_r($arr);
  14. echo "<br>";
  15. array_pop($arr);
  16. print_r($arr);
  17. echo "<hr>";

三.数组元素截取

array_slice(数组,起始位置,长度): 从数组中取出一部分元素

  1. <?php
  2. // array_slice(数组,起始位置,长度): 从数组中取出一部分元素
  3. $users =["id"=>'1021','name'=>"陈松江",'sex'=>'男',"money"=>666.66,"pwd"=>"888888"];
  4. //长度不填,默认全部
  5. print_r(array_slice($users, 0));
  6. echo "<br>";
  7. print_r(array_slice($users, 2,2));
  8. echo "<br>";
  9. print_r(array_slice($users, -4,3));
  10. echo "<hr>";

四.数组元素替换

// array_splice(数组,其实位置,长度):从数组中移除选定的元素,并用新元素取代它。函数也将返回被移除元素的数组(实现增删改)

  1. <?php
  2. $arr = [111, 222, 333, 666,999];
  3. // 删除
  4. // 返回被删除的元素组成的数组
  5. echo "删除前:";
  6. print_r($arr);
  7. echo "<br>";
  8. // 返回被删除的元素组成的数组
  9. print_r(array_splice($arr, 1, 2));
  10. echo "<br>";
  11. print_r($arr);
  12. echo "<hr>";
  13. // 替换
  14. echo "替换前:";
  15. print_r($arr);
  16. echo "<br>";
  17. // 返回被替换的元素组成的数组
  18. print_r(array_splice($arr,2,2,["AAA","BBB"]));
  19. echo "<br>";
  20. print_r($arr);
  21. echo "<hr>";
  22. // 新增
  23. echo "新增前:";
  24. print_r($arr);
  25. echo "<br>";
  26. // 返回空数组
  27. print_r(array_splice($arr, 2, 0, [444, 555]));
  28. echo "<br>";
  29. print_r($arr);
  30. echo "<hr>";

五.数组合并

  1. <?php
  2. $keys = ['id', 'name', 'unit', 'money', 'num'];
  3. $values = [66, '哈密瓜', '斤', 60, 4];
  4. // array_combine(键名组,值组):合并两个数组来创建一个新数组,其中的一个数组元素为键名,另一个数组的元素为键值,2组元素梳理要相同
  5. print_r(array_combine($keys, $values));
  6. echo "<hr>";
  7. // array_merge(array1,array2,array3...):把一个或多个数组合并为一个数组
  8. print_r(array_merge($keys,$values)) ;

六.其他函数

  • array_filter()函数用回调函数过滤数组中的元素。该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回给结果数组。数组键名保持不变。

    1. <?php
    2. $arr = [111,'哈密瓜','0',0,'111',false,'null',null,'','AAA',[]];
    3. $res = array_filter($arr,function ($item) {
    4. return $item;
    5. });
    6. //与array_filter($arr)效果一致
    7. // [], null, false,'', 0, '0' : 转为false
    8. print_r($res);
    9. echo "<hr>";

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

    1. <?php
    2. // extract(): 将关联数组拆分为变量
    3. $calss = ["id"=>1,'name'=>"王明",'sex'=>'男',"cla"=>"一班"];
    4. extract($calss);
    5. echo $id."////".$name."///".$sex."///".$cla;
    6. echo "<hr>";

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

  1. <?php
  2. // compact():将一组变量组装成关联数组
  3. $id=123;
  4. $title="标题";
  5. $status= 1;
  6. print_r(compact("id",'title','status'));

总结

上面例举只是数组函数中的一小部分,在实际开发中,要根据所需的结果去选择数组函数;这要我们多去了解其他数组函数的功能及参数,还有返回值及类型

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