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将向Java靠拢
Oct 09 PHP
编译问题
Oct 09 PHP
一个程序下载的管理程序(三)
Oct 09 PHP
模仿OSO的论坛(五)
Oct 09 PHP
php实现用户在线时间统计详解
Oct 08 PHP
PHP Directory 函数的详解
Mar 07 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
php简单判断两个字符串是否相等的方法
Jul 13 PHP
教大家制作简单的php日历
Nov 17 PHP
mac os快速切换多个PHP版本的方法
Mar 07 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 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的FTP学习(四)
2006/10/09 PHP
关于php curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
javascript知识点收藏
2007/02/22 Javascript
JavaScript 的方法重载效果
2009/08/07 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
JavaScript SHA512&SHA256加密算法详解
2015/08/11 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
python实现求最长回文子串长度
2018/01/22 Python
Python 获取div标签中的文字实例
2018/12/20 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
大学军训通讯稿
2014/01/13 职场文书
小学教师培训方案
2014/06/09 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
城南旧事读书笔记
2015/06/29 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS