php数组(十九) array_shift 和array_unshift
1、array_shift 将数组开头的单元移出数组
返回值
返回移出的值,如果 array
为 空或不是一个数组则返回 null
。
(1)移除数组的第一个元素
1 2 3 4 5 | <?php $stack = array ( "orange" , "banana" , "apple" , "raspberry" ); $fruit = array_shift ( $stack ); print_r( $stack ); ?> |
输出:
1 2 3 4 5 6 | Array ( [0] => banana [1] => apple [2] => raspberry ) |
(2)删除大数组的第一个元素性能测试
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 | <?php ini_set ( 'memory_limit' , '5G' ); $arr = []; for ( $i = 0 ; $i <= 10000000; $i ++){ $arr [] = $i ; } $starttime = microtime(true); echo "start:" . $starttime . "\n" ; array_shift ( $arr ); $endTime = microtime(true); echo "end:" . $endTime . "\n" ; //使用array_reverse + array_pop $starttime = microtime(true); echo "reverse start:" . $starttime . "\n" ; $arr2 = array_reverse ( $arr ); array_pop ( $arr2 ); $endTime = microtime(true); echo "reverse end:" . $endTime . "\n" ; //直接使用unset $starttime = microtime(true); echo "unset start:" . $starttime . "\n" ; unset( $arr [0]); $endTime = microtime(true); echo "unset end:" . $endTime ; |
输出: unset的性能最高
1 2 3 4 5 6 | start:1629257137.3949 end :1629257137.4434 reverse start:1629257137.4435 reverse end :1629257137.613 unset start:1629257137.613 unset end :1629257137.613 |
2、array_unshift — 在数组开头插入一个或多个单元
array_unshift(array
&$array
, mixed ...$values
): intarray_unshift() 将传入的单元插入到 array
数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
(1)插入多个元素示例:
1 2 3 4 5 | <?php $queue = array ( "orange" , "banana" ); array_unshift ( $queue , "apple" , "raspberry" ); print_r( $queue ); ?> |
输出:
1 2 3 4 5 6 7 | Array ( [0] => apple [1] => raspberry [2] => orange [3] => banana ) |
2、插入数组
1 2 3 4 5 6 | <?php $queue = array ( "orange" , "banana" ); $stack = array ( "apple" , "red" ); array_unshift ( $queue , $stack ); print_r( $queue ); ?> |
输出:作为一个元素整体插入
1 2 3 4 5 6 7 8 9 10 11 | Array ( [0] => Array ( [0] => apple [1] => red ) [1] => orange [2] => banana ) |
分类:
php相关
posted on 2021-08-18 11:37 1450811640 阅读(301) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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的设计差异
· 三行代码完成国际化适配,妙~啊~