php数组(十九) array_shift 和array_unshift
1、array_shift 将数组开头的单元移出数组
返回值
返回移出的值,如果 array
为 空或不是一个数组则返回 null
。
(1)移除数组的第一个元素
<?php $stack = array("orange", "banana", "apple", "raspberry"); $fruit = array_shift($stack); print_r($stack); ?>
输出:
Array ( [0] => banana [1] => apple [2] => raspberry )
(2)删除大数组的第一个元素性能测试
<?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的性能最高
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)插入多个元素示例:
<?php $queue = array("orange", "banana"); array_unshift($queue, "apple", "raspberry"); print_r($queue); ?>
输出:
Array ( [0] => apple [1] => raspberry [2] => orange [3] => banana )
2、插入数组
<?php $queue = array("orange", "banana"); $stack = array("apple", "red"); array_unshift($queue, $stack); print_r($queue); ?>
输出:作为一个元素整体插入
Array ( [0] => Array ( [0] => apple [1] => red ) [1] => orange [2] => banana )
posted on 2021-08-18 11:37 1450811640 阅读(259) 评论(0) 编辑 收藏 举报