PHP中unset,array_splice删除数组中元素的区别


Posted in PHP onJuly 28, 2014

如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排:

<?php 
$arr = array('a','b','c','d');
unset($arr[1]);
print_r($arr);
?>

结果是:

Array ( [0] => a [2] => c [3] => d )
 
那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice():

<?php 
$arr = array('a','b','c','d'); 
array_splice($arr,1,1); 
print_r($arr); 
?>

结果是:

Array ( [0] => a [1] => c [2] => d )
 
删除数组中特定元素

<?php
$arr2 = array(1,3, 5,7,8);
foreach ($arr2 as $key=>$value)
{
  if ($value === 3)
    unset($arr2[$key]);
}
var_dump($arr2);
?>

补充删除空数组

实例:

<?php
  $array = ('a' => "abc", 'b' => "bcd",'c' =>"cde",'d' =>"def",'e'=>"");
  array_filter($array);
  echo "<pre>";
  print_r($array);
?>

结果:

Array (
     [a] => abc
     [b] => bcd
     [c] => cde
    [d] => def
)

总结
 

array_splice()函数删除的话,数组的索引值也变化了。
unset()函数删除的话,数组的索引值没有变化。

PHP 相关文章推荐
php+dbfile开发小型留言本
Oct 09 PHP
服务器端解压缩zip的脚本
Dec 22 PHP
ZF等常用php框架中存在的问题
Jan 10 PHP
php设计模式  Command(命令模式)
Jun 17 PHP
PHP读取文件并可支持远程文件的代码分享
Oct 03 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
Laravel 5 框架入门(三)
Apr 09 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
May 05 PHP
php封装一个异常的处理类
Jun 08 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
Aug 06 PHP
Laravel框架之解决前端显示图片问题
Oct 24 PHP
PHP常用数组函数介绍
Jul 28 #PHP
PHP调用C#开发的dll类库方法
Jul 28 #PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
Jul 28 #PHP
windows的文件系统机制引发的PHP路径爆破问题分析
Jul 28 #PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 #PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 #PHP
php实现的九九乘法口诀表简洁版
Jul 28 #PHP
You might like
php&amp;java(三)
2006/10/09 PHP
PHP开发中常用的8个小技巧
2008/08/27 PHP
自己在做项目过程中学到的PHP知识收集
2012/08/20 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
jquery 图片轮换效果
2010/07/29 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
Three.js快速入门教程
2016/09/09 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
js实现抽奖效果
2017/03/27 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
python pdb调试方法分享
2014/01/21 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2019/07/03 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
2020/06/14 Python
提高python代码运行效率的一些建议
2020/09/29 Python
静态成员和非静态成员的区别
2012/05/12 面试题
工程地质勘察专业大学生求职信
2013/10/13 职场文书
书香校园建设方案
2014/05/02 职场文书
作风大整顿心得体会
2014/09/10 职场文书
介绍信怎么写
2015/05/05 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
Python基础之条件语句详解
2021/06/16 Python
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python