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

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

 

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

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

 

返回值

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

 

(1)示例多个元素入栈

1
2
3
4
5
<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

 输出:

1
2
3
4
5
6
7
Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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 添加一个数组时

1
2
3
4
5
6
7
<?php
 
$oneArray = ['d', 'e', 'f'];
$anotherArray = ['a', 'b', 'c'];
 
array_push($anotherArray, $oneArray);
print_r($anotherArray);

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

1
2
3
4
5
6
7
8
9
10
11
12
13
Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => Array
        (
            [0] => d
            [1] => e
            [2] => f
        )
 
)

 

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

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

 

(1)返回最后一个元素

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

 输出:

1
2
3
4
5
6
Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

 

posted on   1450811640  阅读(211)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示