php数组可以用栈的角度来操作,这其中包含了如下函数,array_pop(),array_push,array_shift(),array_unshift()。

array_pop()函数

将数组的最后一个元素移出,也就是出栈;

函数的参数只有一个就是欲操作的数组,这里是引用传值,会改变欲操作的数组;

函数返回出栈那个元素。

 $arr = [1, 2, 3, 4];
array_pop( $arr );
var_dump( $arr );
// array(3) {
// [0] =>
// int(1)
// [1] =>
// int(2)
// [2] =>
// int(3)
// }

array_push()函数

与array_pop函数执行相反的操作,从数组的末尾添加一个或多个元素,也就是入栈;

 array_push ( array &$array , mixed $value1 [, mixed $... ] ) : int

函数参数第一个是目标数组(引用传值),接下来就是欲要入栈的值;

函数返回入栈数组的个数。

 $arr = [1, 2, 3, 4];
var_dump( array_push( $arr, 5, 6 ) );
var_dump( $arr );
// int(6)
// array(6) {
// [0] =>
// int(1)
// [1] =>
// int(2)
// [2] =>
// int(3)
// [3] =>
// int(4)
// [4] =>
// int(5)
// [5] =>
// int(6)
// }

array_shift()函数

移出数组的第一个元素,数组的数字键都会从零开始重新计数,非数字键不会;

函数的参数只有一个,就是与操作的数组,引用传值。

函数会返回移出的那个元素,如果没有就是null。

 $arr = [1, 2, 3, 4];
var_dump( array_shift( $arr ) );
var_dump( $arr );
// int(1)
// array(3) {
// [0] =>
// int(2)
// [1] =>
// int(3)
// [2] =>
// int(4)
// }

array_unshift()函数

从数组的开头插入一个或多个值(传值的顺序就是数组中新插入元素的顺序);

 array_unshift ( array &$array [, mixed $... ] ) : int

插完后,数组的数字键都会从零开始重新计数,非数字键不会;

函数会返回插入完成后数组的新长度。

 $arr = [1, 2, 3, 4];
var_dump( array_unshift( $arr, -2, -1, 0 ) );
var_dump( $arr );
// int(7)
// array(7) {
// [0] =>
// int(-2)
// [1] =>
// int(-1)
// [2] =>
// int(0)
// [3] =>
// int(1)
// [4] =>
// int(2)
// [5] =>
// int(3)
// [6] =>
// int(4)
// }

最新文章

  1. C#与C++的发展历程第二 - C#4.0再接再厉
  2. js中setTimeout()时间参数设置为0的探讨
  3. canvas加载进度条
  4. <转>浏览器内核分类
  5. C#的设计模式分为3大类23种
  6. Sqlserver事务发布实现数据同步
  7. platform机制
  8. Android开发必知--几种不同对话框的实现
  9. Android 开机自启动
  10. Undefined symbols for architecture armv7错误解决方法
  11. Day19 Django
  12. VMware Workstation14 安装Ubuntu18.04
  13. 关于R语言中dnorm,pnorm,qnorm,rnorm的用法
  14. C#复习笔记(4)--C#3:革新写代码的方式(查询表达式和LINQ to object(下))
  15. sql server 语法 MSDN
  16. WeakReference与SoftReference
  17. [转发]jquery获取当前页面的URL信息
  18. Strusts2笔记7--国际化
  19. PHP高级教程-多维数组
  20. org.hibernate.Session常用方法的作用总结

热门文章

  1. 2018-2019 20165226 Exp 8 Web基础
  2. Assignment2:因果图法的介绍与示例分析
  3. vue+elementui搭建后台管理界面(2首页)
  4. php手记之05-tp5获取器与修改器
  5. 深度学习面试题14:Dropout(随机失活)
  6. postgresql 增量备份
  7. 手写MyBatis ORM框架实践
  8. mediacoder固定质量CRF
  9. Kotlin集合——Set集合
  10. WPF分析工具