实验室-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的值。
相关文章推荐
- php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
- php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
- php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
- php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
- php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
- PHP next()移动数组内部指针到下一个元素的位置,并返回该元素 prev()
- php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
- php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
- PHP删除数组中的特定元素的代码
- php如何从数组中删除一个元素
- 约瑟夫环问题的 PHP 实现--使用 PHP 数组内部指针操作函数
- 约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
- 【php数组函数序列】之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
- php数组函数序列之array_splice() - 在数组任意位置插入元素
- 【php数组函数序列】之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
- php数组中删除元素的实现代码
- 【php数组函数序列】之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
- 【php数组函数序列】之key() - 获取数组内部指针当前指向元素的键名
- php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
- 【php数组函数序列】之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位