php array_flip() 删除数组重复元素


Posted in PHP onJanuary 14, 2009

方法如下:
$arr = array(…………) ;//假设有一万个元素的数组,里面有重复的元素。
$arr = array_flip(array_flip($arr)); //这样便可以删除重复元素。

究竟是怎么回事呢?来看下array_flip()的作用:array_flip()用于将一个数组的每个元素的键和值交换,如:
$arr1 = array (”age” => 30, “name” => “快乐园”);
$arr2 = array_flip($arr1); //$arr2 就是 array(30 => “age”, “快乐园” => “name”);
在PHP的数组中,允许不同的元素可以取同一个值,但不允许同一个键名被不同的元素使用,如:
$arr1 = array (”age” => 30, “name” => “快乐园”, “age” => 20); “age” => 20将会取代”age” => 30
$arr1 = array (”name” => “快乐园”, “age” => 45);
这里 $arr1与$arr2 是相等的。
于是,我们便可以知道,为什么 array_flip(array_flip($arr)) 可以删除数组中重复的元素了。首先,$arr里的值会变成键名,因为值是有重复的,变成键名之后这些重复的值便成了重复的键名,PHP引擎将重复的键名删除,只保留最后一个。如:
$arr1 = array (”age” => 30, “name” => “快乐园”, “age” => 20);
$arr1 = array_flip($arr1); //$arr1 变成了 array(”快乐园” => “name”, 20 => “age”);
//再把 $arr1 的键名与值还复:
$arr1 = array_flip($arr1);

上面的代码写得简洁一些就是: $arr1 = array_flip(array_flip($arr1));

PHP 相关文章推荐
PHP JSON 数据解析代码
May 26 PHP
php开发环境配置记录
Jan 14 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
May 07 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
Jun 28 PHP
带密匙的php加密解密示例分享
Jan 29 PHP
PHP开发框架kohana中处理ajax请求的例子
Jul 14 PHP
php清除和销毁session的方法分析
Mar 19 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
Nov 15 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
Mar 04 PHP
PHP mkdir()定义和用法
Jan 14 #PHP
php array_intersect()函数使用代码
Jan 14 #PHP
php strtotime 函数UNIX时间戳
Jan 14 #PHP
php str_pad 函数使用详解
Jan 13 #PHP
php mssql 时间格式问题
Jan 13 #PHP
php zend 相对路径问题
Jan 12 #PHP
PHP setcookie() cannot modify header information 的解决方法
Jan 09 #PHP
You might like
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
JavaScript CSS修改学习第五章 给“上传”添加样式
2010/02/19 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
直接拿来用的页面跳转进度条JS实现
2016/01/06 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
React组件refs的使用详解
2018/02/09 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
Python中的is和id用法分析
2015/01/26 Python
python删除列表内容
2015/08/04 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
销售自我评价
2013/10/22 职场文书
《难忘的泼水节》教学反思
2014/02/27 职场文书
房产买卖委托公证书
2014/04/04 职场文书
投资协议书范本
2014/04/21 职场文书
保护野生动物倡议书
2014/05/16 职场文书
党员个人年度总结
2015/02/14 职场文书
致接力运动员加油稿
2015/07/21 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
用golang如何替换某个文件中的字符串
2021/04/25 Golang