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 相关文章推荐
Smarty模板快速入门
Jan 04 PHP
PHP 创建文件(文件夹)以及目录操作代码
Mar 04 PHP
php开启安全模式后禁用的函数集合
Jun 26 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
Nov 07 PHP
php实现在多维数组中查找特定value的方法
Jul 29 PHP
如何解决PHP无法实现多线程的问题
Sep 25 PHP
Yii2隐藏frontend/web和backend/web的方法
Dec 12 PHP
全新Mac配置PHP开发环境教程
Feb 03 PHP
php 指定范围内多个随机数代码实例
Jul 18 PHP
PHP convert_cyr_string()函数讲解
Feb 13 PHP
PHP匿名函数(闭包函数)详解
Mar 22 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(视频)Http下载
2006/12/12 PHP
相对路径转化成绝对路径
2007/04/10 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
Yii2单元测试用法示例
2016/11/12 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
微信小程序开发注意指南和优化实践(小结)
2019/06/21 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
2019/07/15 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
Python实现的tab文件操作类分享
2014/11/20 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
一个入门级python爬虫教程详解
2021/01/27 Python
CSS3 实现倒计时效果
2020/11/25 HTML / CSS
美国在线家具网站:GDFStudio
2021/03/13 全球购物
物业管理员岗位职责范文
2013/11/25 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
2014年教师节寄语
2014/04/03 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
软件售后服务承诺书
2014/05/21 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书