大家好,今天我们浅谈一下php数组栈和队列的使用。我们大家知道,
一、栈是一种后进先出或是先进后出的一种模式。这样说感觉是不是有一点枯燥。我认为可以这样理解更加通俗易懂写。
**比如,我认为栈是弹压的概念。就像子弹壳装弹,要一粒一粒压进去,但是打出来的是从顶部打出来。这就造成了最先压进去的最后弹出来,如果进去顺序是123,打出来顺序是321,这就是最后进入的子弹最先出来,这就是后进先出。相反就是最先进入的子弹最后出来。这就是先进后出。**
我们php中array_push,array_pop数组。可以实现栈的操作。
1. array_push函数数组 将一个或多个单元压入数组的末尾(入栈)
2. array_pop函数数组 弹出数组最后一个单元(出栈)
```
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
输出:进行数组的末尾入栈
Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => raspberry
)
下一步我们进行出栈:
array_pop($stack);
输出:出栈数组末尾依次减一
Array
(
[0] => orange
[1] => banana
[2] => apple
)
这样我们就实现了最先进入的最后出。也就是先进后出,反之后进先出。
```
二、队列。
**我认为就像我们正常的排队一样,入队1、2、3。那出队也就是 1、2、3.就是我们通常说的先进先出。**
php中array_unshift、array_shift数组函数。可以实现队列的操作。
1. array_unshift — 在数组开头插入一个或多个单元
2. array_shift — 将数组开头的单元移出数组
```
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
输出:掺入的数据始终在数组的开头
Array
(
[0] => apple
[1] => raspberry
[2] => orange
[3] => banana
)
出队列将数组开头的单元移出数组
$fruit = array_shift($stack);
print_r($stack);
输出:
Array
(
[0] => banana
[1] => apple
[2] => raspberry
)
```
从上面的例子我们就可以看出,先入队的都会在数组的开头,出队的也是从数组的开头。也就先进先出了。
参考
https://www.2cto.com/kf/201601/458137.html