php数组(十八)栈操作 array_push 和array_pop

有时候业务逻辑需要实现先进先出的场景,那这个时候就需要用到php的两个数组函数array_pop、array_push,使用数组实现栈。

 

1、array_push 将一个或多个单元压入数组的末尾(入栈)

注意: 如果用 array_push() 来给数组增加一个单元,还不如用 $array[] = ,因为这样没有调用函数的额外负担。

 

返回值

返回处理之后数组的元素个数。

 

(1)示例多个元素入栈

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

 输出:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

 (2)array_push 和array[] 性能测试

<?php
$array = array();
for ($x = 1; $x <= 100000; $x++)
{
    $array[] = $x;
}
?>
takes 0.0622200965881 seconds

and

<?php
$array = array();
for ($x = 1; $x <= 100000; $x++)
{
    array_push($array, $x);
}
?>
takes 1.63195490837 seconds

 输出:从以上结果可以看出,如果只是新增元素,并且不会用到返回值,array_push消耗的时间更多

 (4) array_push 添加一个数组时

<?php

$oneArray = ['d', 'e', 'f'];
$anotherArray = ['a', 'b', 'c'];

array_push($anotherArray, $oneArray);
print_r($anotherArray);

 输出:将整个数组作为一个元素添加到最后

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => Array
        (
            [0] => d
            [1] => e
            [2] => f
        )

)

 

2、array_pop 弹出数组最后一个单元(出栈)

注意: 使用此函数后会重置(reset()array 指针。

 

(1)返回最后一个元素

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>

 输出:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

 

posted on 2021-08-18 11:12  1450811640  阅读(171)  评论(0编辑  收藏  举报