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 相关文章推荐
第十节 抽象方法和抽象类 [10]
Oct 09 PHP
phpBB BBcode处理的漏洞
Oct 09 PHP
php 多线程上下文中安全写文件实现代码
Dec 28 PHP
深入PHP与浏览器缓存的分析
Jun 03 PHP
检查用户名是否已在mysql中存在的php写法
Jan 20 PHP
php像数组一样存取和修改字符串字符
Mar 21 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
PHP判断一个gif图片是否为动态图片的方法
Nov 19 PHP
php实现图片上传并利用ImageMagick生成缩略图
Mar 14 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 PHP
php/JS实现的生成随机密码(验证码)功能示例
Jun 06 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
Cygwin中安装PHP方法步骤
2015/07/04 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
使用ExtJS技术实现的拖动树结点
2010/08/05 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
python爬虫使用cookie登录详解
2017/12/27 Python
Python爬虫之正则表达式的使用教程详解
2018/10/25 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
高三自我鉴定
2013/10/23 职场文书
十八届三中全会报告学习材料
2014/02/17 职场文书
学习交流会主持词
2014/04/01 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
大学生就业协议书范本(适用于公司企业)
2014/10/07 职场文书
工作失职检讨书500字
2014/10/17 职场文书
2014年财政所工作总结
2014/11/22 职场文书
中标通知书格式
2015/04/17 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
JavaScript 数组去重详解
2021/09/15 Javascript
解决Redis启动警告问题
2022/02/24 Redis