您的位置:首页 > 编程语言 > PHP开发

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

2017-01-11 14:17 190 查看
<?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的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bug 指针
相关文章推荐