博客列表 >数组的处理细节!

数组的处理细节!

XFY_肆意De...
XFY_肆意De...原创
2020年07月21日 12:58:54778浏览

栈与队列 数组的高级应用

  1. 栈:后进先出 (LIFO-last in first out ) 最后插入的元素先出
  2. 栈的插入操作:
  3. //追加->进栈
  4. array_push();
  5. 栈的删除操作:
  6. //删除->出栈
  7. array_pop();
  8. -----------------------------------------------------
  9. //array_push($array,$value1,$value2,……)语法:
  10. $nums = [1,2,3,4];
  11. $nums =array_push($nums,5,6,7);
  12. print_r($nums);
  13. //打印数组array(['0'=>1,'1'=>2,'2'=>3,'3'=>4,'4'=>5,'5'=>6,'6'=>7]);
  14. -----------------------------------------------------
  15. //array_pop($array) 语法:
  16. $nums = [1,2,3,4];
  17. array_pop($nums);
  18. //第一次从$nums 尾部取出一个;
  19. print_R($nums);
  20. //打印:array(['0'=>1,'1'=>2,'2'=>3]);
  21. //第一次从$nums 尾部再取出一个;
  22. print_R($nums);
  23. //打印:array(['0'=>1,'1'=>2);
  24. //注意:当前数组如果没有值的情况下,返回null

什么是队列

  1. 先进先出(FIFO-first in first out )最先插入的元素最先出来,理解成就是,第一个元素先出来!
  2. 具体应用中通常用链表或是数组来实现;
  3. 对离只允许在后端进入插入操作, array_unshift() ,在前端进行删除操作array_shift()。
  4. //定义数组;
  5. /*
  6. array_unshift($array,$value,value1……) 语法:
  7. */
  8. $nums = [1,2,3,4];
  9. array_unshift($nums,5,6);
  10. print_r($nums);
  11. //输出:array(['0'=5,'1'=>6,'2'=>1,'3'=>2,'4'=>3,'5'=>4]);
  12. //array_shift()
  13. /*
  14. array_shift($array);语法:
  15. */
  16. $nums = [1,2,3,4];
  17. array_shift($nums);
  18. print_r($nums);
  19. //打印:array(['0'=>2,'1'=>3,'2'=>4]);
  20. //每次从数组最开始的元素里面取一个删除,和array_pop一样,当数组不存在或是为空的时候返回的结果为NULL;

打起拉那么多,队列的用途:队列可以很好的异步处理数据传输和存储,当频繁的向数据库提交数据,就可以采用队列来异步插入

  1. /*
  2. 有时候我们需要获取到数组的键,可以直接将数组的key获取到,传统的方法:、
  3. $user = ['name'=>'张三','age'=>18];
  4. while(key($user)){
  5. $key_array[] = key($user);
  6. next();
  7. }
  8. print_r($key_array);
  9. //输出array([0]=>name,[1]=>18);
  10. */
  11. //php中提供了一个更加方便的涵数:array_keys();
  12. $user = ['name'=>'张三','age'=>18];
  13. 直接$key_array = array_keys($user);
  14. print_r($key_array);
  15. //输出array([0]=>name,[1]=>18);

既然有key操作,那肯定就有value操作咯,

  1. 有时候我们需要获取到数组的值,可以直接将数组的values获取到,传统的方法:、
  2. $user = ['name'=>'张三','age'=>18];
  3. foreach($user as $value){
  4. $values[] = $value;
  5. }
  6. print_r($values);
  7. //输出array(['name']=>张三,['age']=>18);
  8. */
  9. //php中提供了一个更加方便的涵数:array_values();
  10. $user = ['name'=>'张三','age'=>18];
  11. //直接
  12. $values = array_values($user);
  13. print_r($values);
  14. //输出array(['name']=>张三,['age']=>18);

说了那么多,系统还提供了其他的数组相关的涵数来。就列举几个常用的、

涵数 说明
array_key_existe(key,array) 检测数组中是否存在key名,key为必填,array为必填且只能是数组
array_key_first(array) array为必填窃必须为数组,返回数组元素中第一个元素的键名
array_key_last(array) array为必填窃必须为数组,返回数组元素中最后一个元素的键名
array_search(value,array) array必填且必须是数组,value必填,查找的值,返回值对应的键名
is_array(value,array) value必填,array为数组,检查数组中是否存在value的值,返回值为bool
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议