php数组与数据栈相关函数
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)
- // }
php数组与数据栈相关函数的更多相关文章
- 简单用数组模拟顺序栈(c++版)适合新手
**栈是一种操作受限制的线性表,太多官方的话我也不说了,我们都知道栈元素是先进后出的,它有两种存储结构,分别是顺序存储结构和链式存储结构. **今天我先记一下顺序存储结构,后面我会加上链式存储结构的. ...
- 简单用数组模拟顺序栈(c++)
**栈是一种操作受限制的线性表,太多官方的话我也不说了,我们都知道栈元素是先进后出的,它有两种存储结构,分别是顺序存储结构和链式存储结构. **今天我先记一下顺序存储结构,后面我会加上链式存储结构的. ...
- 包含MIN函数的栈+一个数组实现两个堆栈+两个数组实现MIN栈
1.题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 思路:利用一个辅助栈来存放最小值 栈 3,4,2,5,1 辅助栈 3,2,1 每入栈一次,就与辅 ...
- JavaScript高级编程——引用类型、Array数组使用、栈方法
JavaScript高级编程——引用类型.Array数组使用.栈方法 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999 ...
- BZOJ_2819_Nim_树状数组维护出栈入栈序
BZOJ_2819_Nim_树状数组维护出栈入栈序 Description 著名游戏设计师vfleaking,最近迷上了Nim.普通的Nim游戏为:两个人进行游戏,N堆石子,每回合可以取其中某一堆的任 ...
- C语言实现使用动态数组来构造栈结构
我在面前一篇博客<C语言实现使用静态数组来构造栈结构>中使用了静态数组来模拟栈的操作.静态数组的大小是在代码中写死的.是存储在用户栈上面的,使用起来不灵活.在这篇博客中我会使用动态数组来构 ...
- java学习笔记(基础篇)—数组模拟实现栈
栈的概念 先进后出策略(LIFO) 是一种基本数据结构 栈的分类有两种:1.静态栈(数组实现) 2.动态栈(链表实现) 栈的模型图如下: 需求分析 在编写代码之前,我习惯先对要实现的程序进行需求分析, ...
- 数据结构笔记--栈的总结及java数组实现简单栈结构
杂谈"栈"结构: 栈(Stack)是一种插入删除操作都只能在一个位置上进表,这个位置位于表的末端,叫做栈顶(Top). 对栈的基本操作有push和pop,表示进栈和出栈.也就相当于 ...
- yii CListView中使用CArrayDataProvider自定义数组作为数据
CArrayDataProvider类手册: http://www.yiichina.com/api/CArrayDataProvider 在yii中无论是CListView还是CGridView,对 ...
随机推荐
- Linux下CFD-Post视图透明的解决方法
今天发生了一件很搞笑的事情,想用CFD-Post对计算结果做后处理,打开CFD-Post之后,背景居然是透明的,见图 做起后处理来完全看不清楚 下面是解决办法,很简单,步骤如下: 在终端中输入 sud ...
- [设计原则与模式] Java 适配器模式
cp from : https://blog.csdn.net/xiaouncle/article/details/80553923 设计模式本质上就是“SOLID设计原则”在实际应用中的具体体现,我 ...
- 详解Unity Profiler内存分析问题
在使用Unity开发游戏的过程中,借助Profiler来分析内存使用状况是至关重要的.但许多开发者可能还对Profiler中各项数据表示的含义不甚明确,今天我们Unity官方的技术工程师柳振东,将针对 ...
- Unity3d 错误提示 GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced
程序出現這個問題的話,程序編譯時正確,運行時報錯,而且沒有報出是哪個代碼文件出處. 這個問題一般首先去檢查Level內有用到OnGUI,Debug結果發現某代碼文件在調試代碼時複製多了一行GUILay ...
- sanity checking
https://zh.wikipedia.org/wiki/健全性测试 Modules\_threadmodule.c /* Lock objects */ typedef struct { PyOb ...
- 基于 Binlog + Flink 实现多表数据同构/异构方案
https://mp.weixin.qq.com/s/1h942YAcS6fhO5C43hGX-w 什么是数据异构?简单讲,就是将数据进行异地数据异构存储. 数据异构 服务市场使用 BinLake(京 ...
- SHELL/VIM删除重复行(去重)text handle
vim 删除重复行 - 国内版 Binghttps://cn.bing.com/search?FORM=U227DF&PC=U227&q=vim+%E5%88%A0%E9%99%A4% ...
- mongodb的开机自启动
一.背景 Linux轻松的在rc.local中写上启动脚本,reboot~发现没有启动成功.这不科学啊,查看日志发现“permission denied” 二.解决 Linux系统下,使用自定配置文件 ...
- iptables 4张表 5条链
- shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)
shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...