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中改变图片的尺寸大小的代码
Jul 17 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
php从右向左/从左向右截取字符串的实现方法
Nov 28 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
php字符串函数学习之substr()
Mar 27 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
Laravel中错误与异常处理的用法示例
Sep 16 PHP
YII2框架中actions的作用与使用方法示例
Mar 13 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 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中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
jQuery中:gt选择器用法实例
2014/12/29 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
vue2.0使用swiper组件实现轮播效果
2017/11/27 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
JavaScript基于用户照片姓名生成海报
2020/05/29 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python读取键盘输入的2种方法
2015/06/16 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Python中矩阵创建和矩阵运算方法
2018/08/04 Python
Python之Class&Object用法详解
2019/12/25 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
世界经理人咨询有限公司面试
2014/09/23 面试题
中学生学习生活的自我评价
2013/10/26 职场文书
30年同学聚会感言
2014/01/30 职场文书
新年联欢会主持词
2014/03/27 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
在人间读书笔记
2015/06/30 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
Python Parser的用法
2021/05/12 Python
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js