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 阅读(321) 评论(0) 收藏 举报
浙公网安备 33010602011771号