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 数据库树的遍历方法
Feb 06 PHP
Windows IIS PHP 5.2 安装与配置方法
Jun 08 PHP
thinkphp3.0 模板中函数的使用
Nov 13 PHP
PHP获取youku视频真实flv文件地址的方法
Dec 23 PHP
php使用post数组的键值创建同名变量并赋值的方法
Apr 03 PHP
详解PHP实现异步调用的4种方法
Mar 14 PHP
Thinkphp3.2实用篇之计算型验证码示例
Feb 09 PHP
PHP实现执行外部程序的方法详解
Aug 17 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 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加密解密的代码
2006/10/09 PHP
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
php自动加载代码实例详解
2021/02/26 PHP
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
javascript操作数组详解
2014/12/17 Javascript
js实现文字闪烁特效的方法
2015/12/17 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
Html5之title吸顶功能
2018/06/04 HTML / CSS
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
P/Invoke是什么
2015/07/31 面试题
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
师德师风个人反思
2014/04/28 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
作风转变年心得体会
2014/10/22 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
党小组评议意见
2015/06/02 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android