php常用数组--栈和队列

gongzhiyang 9月前 384

大家好,今天我们浅谈一下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


最新回复 (0)
    • 都市菜鸟网
      2
        立即登录 立即注册 
返回