实验室-php数组插入删除元素时内部指针的变化

来源:互联网 发布:淘宝网分期付款流程 编辑:程序博客网 时间:2024/04/27 15:51
<?php#今天在做分页函数的时候,因为要做到如下效果:#1.. 6,7,8,9,10#由于是数组存储的值,所以同时进行了向元素头尾部插入、删除元素,导致未出现想要的效果。#测试了许久发现,原来是数组的内部指针在作怪。<?php header("Content-type:text/html;charset=utf-8");$arr = array();for($i =2;$i<10;$i++){    $arr[$i] = "{$i}0";}reset($arr);echo "第一个键名:".key($arr).'<br />';array_shift($arr);array_unshift($arr,'00000');end($arr);echo "最后一个键名:".key($arr).'<br />';foreach ($arr as $key => $value) {    echo "key:{$key}=====value:{$value}<br />";}?><?php header("Content-type:text/html;charset=utf-8");$arr = array();for($i =2;$i<10;$i++){    $arr[$i] = "{$i}0";}reset($arr);echo "第一个键名:".key($arr).'<br />';array_pop($arr);array_push($arr,'00000');end($arr);echo "最后一个键名:".key($arr).'<br />';foreach ($arr as $key => $value) {    echo "key:{$key}=====value:{$value}<br />";}?>?>

经过array_shift和array_unshift操作后,数组元素情况如下:

**第一个键名:2
最后一个键名:7
key:0=====value:00000
key:1=====value:30
key:2=====value:40
key:3=====value:50
key:4=====value:60
key:5=====value:70
key:6=====value:80
key:7=====value:90**

经过array_pop和array_push操作后,数组元素情况如下:

**第一个键名:2
最后一个键名:9
key:2=====value:20
key:3=====value:30
key:4=====value:40
key:5=====value:50
key:6=====value:60
key:7=====value:70
key:8=====value:80
key:9=====value:00000**

实验过程中发现,对数组进行array_pop,array_push操作时,不会重置数组key的值。
但是经过array_shift、array_unshift操作,会重置数组key的值。

0 0