网站首页 > 教程文章 正文
两种常见的数据结构:栈与队列
栈的基本特点: 先进后出
队列的基本特点:先进先出
使用PHP数组模拟栈操作(入栈、出栈)
array_push() 将一个或多个单元压入数组的末尾(入栈),返回值为数组元素的个数。
int array_push ( array &$array , mixed $var [, mixed $... ] )
array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。和如下效果相同:
<?php
$stack = array( "orange" , "banana" );
echo array_push ( $stack , "apple" , array("武汉","成都")); //返回值:4
print_r ( $stack ); Array ( [0] => orange [1] => banana [2] => apple [3] => Array ( [0] => 武汉 [1] => 成都 ) )
?>
实例二
<?php
$array[] = $var; //此种方法的效率高
?>
并对每个 var 重复以上动作。
返回数组新的单元总数。
array_pop() 将数组最后一个单元弹出(出栈)
mixed array_pop ( array &$array )
array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL。
如果是数组则只返回"array"关键字,需遍历;
使用PHP数组模拟队列操作(入队、出队)
array_shift() 将数组开头的单元移出数组(出队)
mixed array_shift ( array &$array )
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。
所有的数字键名将改为从零开始计数,文字键名将不变。如果 array 为空(或者不是数组),则返回 NULL。
如果是数组则只返回"array"关键字,需遍历;
array_unshift() 在数组开头插入一个或多个单元(入队)
int array_unshift ( array &$array , mixed $var [, mixed $... ] )
array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。
所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
返回 array 数组新的单元数目。
- 上一篇: JavaScript 中搜索数组元素的四种方法
- 下一篇: VBA判断工作表是否为空,符合后删除
猜你喜欢
- 2025-06-12 二十、Java数组(java实现数组)
- 2025-06-12 十大经典排序算法-堆排序,计数排序,桶排序,基数排序
- 2025-06-12 3分钟短文 | PHP 根据值移除数组元素,哪个方法最简单?
- 2025-06-12 JAVA程序员常用的几个工具类(java程序员主要工作内容)
- 2025-06-12 C# 基础知识系列- 3 集合数组(c#集合排序)
- 2025-06-12 JUnit5学习之三:Assertions类(junit5 assert)
- 2025-06-12 打工人私藏的4个Excel函数秘籍,效率提升3.7%
- 2025-06-12 稀疏数组——前端电子表格中的应用实战
- 2025-06-12 最快清除数组空值?分享 1 段优质 JS 代码片段!
- 2025-06-12 excel这个复杂数组公式怎么读?(excel数组公式怎么复制)
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)