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 相关文章推荐
最小化数据传输――在客户端存储数据
Oct 09 PHP
Zend Studio 无法启动的问题解决方法
Dec 04 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
Jun 03 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
PHP中round()函数对浮点数进行四舍五入的方法
Nov 19 PHP
php给一组指定关键词添加span标签的方法
Mar 31 PHP
PHP安全下载文件的方法
Apr 07 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
Apr 09 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取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
php单例模式示例分享
2015/02/12 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
js 获取、清空input type="file"的值示例代码
2014/02/19 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
vue实现浏览器全屏展示功能
2019/11/27 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
pyqt4教程之widget使用示例分享
2014/03/07 Python
Python中优化NumPy包使用性能的教程
2015/04/23 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
python自动化生成IOS的图标
2018/11/13 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
应聘医药销售自荐书范文
2014/02/08 职场文书
四查四看剖析材料
2014/02/14 职场文书
《只有一个地球》教学反思
2014/02/14 职场文书
部队党性分析材料
2014/02/16 职场文书
主题实践活动总结
2014/05/08 职场文书
会计演讲稿范文
2014/05/23 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
golang生成并解析JSON
2022/04/14 Golang