Chinaunix首页 | 论坛 | 博客
  • 博客访问: 463697
  • 博文数量: 141
  • 博客积分: 211
  • 博客等级: 入伍新兵
  • 技术积分: 1049
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-17 16:25
个人简介

如此经年,望尽千帆。

文章分类

全部博文(141)

文章存档

2014年(73)

2013年(65)

2012年(3)

我的朋友

分类: PHP

2014-03-22 15:30:37

在某个数组中删除一个元素,我是直接用的unset,也不管unset之后会发生什么。

例子:

  1. <?php
  2. $arr = array('a','b','c','d');
  3. unset($arr[1]);
  4. print_r($arr);
  5. ?>
unset之后,数组$arr应该会压缩数组以填补缺少的元素位置,但print_r($arr)之后,结果却不是那样的,最终结果是 Array ( [0] => a [2] => c [3] => d );
如果是这样的话,来看看数字数组的形式

  1. <?php
  2. $arr = range(5,10,4);
  3. print_r($arr);//Array ( [0] => 5 [1] => 6 [2] => 7 [3] => 8 [4] => 9 [5] => 10 )
  4.  unset($arr[1]);//Array ( [0] => 5 [2] => 7 [3] => 8 [4] => 9 [5] => 10 )
  5. print_r($arr);
  6. ?>
可以看到输出的形式也是数组是会填补缺少的元素的位置。
那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice():


  1. $arr = array('a','b','c','d');
  2. array_splice($arr,1,1);
  3. print_r($arr); // <span style="font-family: Simsun;font-size:16px; ">Array ( [0] => a [1] => c [2] => d )</span>
  4. ?>
阅读(825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~