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完整的日历类(CLASS)
Nov 27 PHP
一个很不错的PHP翻页类
Jun 01 PHP
PHP中的Memcache详解
Apr 05 PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 PHP
学习php设计模式 php实现合成模式(composite)
Dec 08 PHP
Yii中表单用法实例详解
Jan 05 PHP
PHP实现JS中escape与unescape的方法
Jul 11 PHP
mysql alter table命令修改表结构实例详解
Sep 24 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
php5.x禁用eval的操作方法
Oct 19 PHP
解决Laravel 不能创建 migration 的问题
Oct 09 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 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简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
JavaScript知识点整理
2015/12/09 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
python的Template使用指南
2014/09/11 Python
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
python导入时小括号大作用
2017/01/10 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
Django values()和value_list()的使用
2020/03/31 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
关于Python错误重试方法总结
2021/01/03 Python
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
高级Java程序员面试要点
2013/08/02 面试题
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
护士辞职信模板
2014/01/20 职场文书
丑小鸭教学反思
2014/02/03 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
2015公司年度工作总结
2015/05/14 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
python内置进制转换函数的操作
2021/06/02 Python
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
python中super()函数的理解与基本使用
2021/08/30 Python