PHP数组实现栈和队列:push,pop,shif,unshift
来源:互联网 发布:mac 文字整理 编辑:程序博客网 时间:2024/05/19 05:29
尽管在PHP中允许直接访问某个数组单元,但PHP仍提供了各种有趣的方式来处理数组。特别要说的是,某些函数使PHP数组非常容易的实现了一个栈或队列。
array_pop
这个array_pop函数会删除并返回数组的最后一个元素。
在下面的这个例子中,你将会看到在给定一个数组的3个元素中,如何删除最后一个元素的值(索引最大的元素)并返回这个值。
$stack = array("orange", "banana", "apple");$fruit = array_pop($stack);echo $fruit."<br/>";print_r($stack);
上面的例子中,效果相当于出栈,最后执行后结果为:
apple
Array (
[0] => orange
[1] => banana
)
可以看到数组索引最大的那个值被删除,而且赋值给了$fruit。当数组是一个空数组时,会返回一个NULL。
array_push
这个array_push函数可以向数组末尾添加一个或多个元素,并返回数组的长度。
$stack = array("orange", "banana");array_push($stack, "apple");print_r($stack);
上面的例子,效果相当于进栈,最后输出的结果为:
Array (
[0] => orange
[1] => banana
[2] => apple )
array_shift
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。
所有的数字键名将改为从零开始计数,文字键名将不变。
$stack = array("orange", "banana", "apple", "raspberry");$fruit = array_shift($stack);
print_r($stack);
上面的例子中,实现效果相当于取出队列首元素,最后输出的结果为:
Array (
[0] => banana
[1] => apple
[2] => raspberry
)
array_unshift
array_unshift可以向数组插入一个或多个新元素。插入的值将按顺序放置到数组的开头。
$queue = array("orange", "banana");array_unshift($queue, "apple", "raspberry");print_r($queue);
上面的例子,实现的效果相当于元素进入队列,最后输出的结果为:
Array (
[0] => apple
[1] => raspberry
[2] => orange
[3] => banana
)
- PHP数组实现栈和队列:push,pop,shif,unshift
- 【Perl读书笔记】数组操作push、pop、shift和unshift
- js开发:数组的push()、pop()、shift()和unshift()
- js 数组 pop,push,unshift,splice,shift
- 操作Perl数组: shift, unshift, push, pop
- 数组的操作push,pop,shift,unshift
- 数组添加删除----unshift,shift,pop,push
- 操作Perl数组: shift, unshift, push, pop
- pop,push,shift,unshift
- 数组去重和splice() 方法split()跟join()数组方法pop() push() unshift() shift()
- 两个栈实现队列Push和Pop操作
- 两个栈实现一个队列的push和pop
- 用栈实现队列的push、top和pop
- js队列方法push()、shift()与pop()、unshift()的理解
- 前端关于队列push(),shift()的操作(pop(),unshift())
- 实现查看更多【数组push和unshift的应用】
- 栈push() pop()队 shift() unshift()数组添加删除内容方法
- ActionScript中数组操作(一):push(pop)与unshift(shift)
- Tomcat 6 --- 你很少使用的安全管理SecurityManager
- Yii2 多域名跨域同步登录退出
- js提取数字和字母 ,数字自增,PM0001---->PM0002 / PM009--> PM010
- 文章标题
- Linux 内核设备驱动之GPIO驱动之GPIO 控制器描述
- PHP数组实现栈和队列:push,pop,shif,unshift
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- Hive编程指南10---其他文件格式和压缩方法
- Linux命令--cd
- The request sent by the client was syntactically incorrect-SpringMVC问题详解
- spring容器和spring mvc容器有什么关系?
- 通过泛型实现封装,减少重复代码
- Android View Activity内部顶部通知实现方式收录
- java实现rabbitmq消息的发送接受