PHP使用数组实现队列、堆栈(实际就是先进先出、先进后出怎样实现)

我只是一个虾纸丫 提交于 2019-12-05 00:22:45

1. array_shift() - 将数组开头的单元移出数组;array_push() - 将一个或多个单元压入数组的末尾(入栈);array_pop() - 弹出数组最后一个单元(出栈)

 

PHP中将一个数组作为一个栈 ,主要是使用array_push()和array_pop()两个系统函数来完毕。(“先进后出”)入栈主要是利用array_push()函数向第一个参数-数组的尾部加入一个或多个元素。然后返回新的数组长度。

而PHP中,将数组当做是队列则主要是用array_push和array_shift()实现。(“先进先出”)

 

<?php
$zhan=array("WEB");//声明一个数组当做栈/队列
array_push($zhan,"PHP");//将字符串压入栈/队列(数组)中
array_push($zhan,"WWW.CHHUA.COM");//再压入一个元素
array_push($zhan,"WEB开发笔记");
array_push($zhan,"PHP");
array_push($zhan,"站点建设");
print_r($zhan);//打印数组内容
?>

结果为:Array ( [0] => WEB [1] => PHP [2] => WWW.CHHUA.COM [3] => WEB开发笔记 [4] => PHP [5] => 站点建设 )

出队列主要是利用array_shift()函数将数组的第一个元素弹出,并将数组的长度减1,示比例如以下:

<?php
$zhan=array("WEB","www.chhua.com","WEB开发笔记","PHP","站点建设");//声明一个数组当做栈
array_shift($zhan);//将字符串出队(数组)
print_r($zhan);//打印数组内容 Array ( [0] => www.chhua.com [1] => WEB开发笔记 [2] => PHP [3] => 站点建设 )
?> 
array_shift($zhan);//再次将字符串出队(数组)
print_r($zhan);//打印数组内容 Array ( [0] => WEB开发笔记 [1] => PHP [2] => 站点建设 )

出栈主要是利用array_pop()函数将数组的最后一个元素弹出,并将数组的长度减1,示比例如以下:

<?php
$zhan=array("WEB","www.chhua.com","WEB开发笔记","PHP","站点建设");//声明一个数组当做栈
array_pop($zhan);//将字符串出栈(数组) 
print_r($zhan);// Array ( [0] => WEB [1] => www.chhua.com [2] => WEB开发笔记 [3] => PHP )
array_pop($zhan);//再次将字符串出栈(数组) 
print_r($zhan);// Array ( [0] => WEB [1] => www.chhua.com [2] => WEB开发笔记 )
?> 
 

2. array_unshift()(在数组开头插入一个或多个单元) 

array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。

<?php
$a = array("orange","banana");
array_unshift($a, "apple","strawberry","raspberry");
print_r($a);//输出结果为Array ( [0] => apple [1] => strawberry [2] => raspberry [3] => orange [4] => banana )
?>
<?php
$a=array("a"=>"red","b"=>"green");
array_unshift($a,"blue");
print_r($a);//输出结果:Array ( [0] => blue [a] => red [b] => green )
?>

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!