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令牌 Token改进版
Jul 18 PHP
PHP中PDO基础教程 入门级
Sep 04 PHP
解析php二分法查找数组是否包含某一元素
May 23 PHP
php curl选项列表(超详细)
Jul 01 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
Jun 20 PHP
php计算年龄精准到年月日
Nov 17 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
Jun 28 PHP
PHP面向对象学习之parent::关键字
Jan 18 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
php实现微信支付之企业付款
May 30 PHP
PHP中使用mpdf 导出PDF文件的实现方法
Oct 22 PHP
PHP-FPM的配置与优化讲解
Mar 15 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中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
js 图片轮播(5张图片)
2008/12/30 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
python3-flask-3将信息写入日志的实操方法
2019/11/12 Python
Python接口自动化测试的实现
2020/08/28 Python
python中使用np.delete()的实例方法
2021/02/01 Python
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
如何判断计算机可能已经中马
2013/03/22 面试题
体育专业个人的求职信范文
2013/09/21 职场文书
开办化妆品公司创业计划书
2013/12/26 职场文书
商务邀请函范文
2014/01/14 职场文书
上班玩手机检讨书
2014/02/17 职场文书
布达拉宫导游词
2015/02/02 职场文书
刑事上诉状范文
2015/05/22 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
SpringBoot 集成Redis 过程
2021/06/02 Redis