php数组去重实例及分析


Posted in PHP onNovember 26, 2013

一维数组的重复项:

使用array_unique函数即可,使用实例如下:

              <?php
                  $aa=array("apple","banana","pear","apple","wail","watermalon");
                  $bb=array_unique($aa);
                  print_r($bb);
               ?>

结果如下:Array ( [0] => apple [1] =>banana [2] => pear [4] => wail [5]=> watermalon ) 。

二维数组的重复项:

对于二维数组咱们分两种情况讨论,一种是因为某一键名的值不能重复,删除重复项;另一种因为内部的一维数组不能完全相同,而删除重复项,下面举例说明:

㈠因为某一键名的值不能重复,删除重复项

          <?php
           function assoc_unique($arr, $key)
            {
              $tmp_arr = array();
              foreach($arr as $k => $v)
             {
                if(in_array($v[$key],$tmp_arr))//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
               {
                  unset($arr[$k]);
               }
             else {
                 $tmp_arr[] = $v[$key];
               }
             }
           sort($arr); //sort函数对数组进行排序
           return $arr;
           }
           $aa = array(
           array('id' => 123, 'name' =>'张三'),
           array('id' => 123, 'name' =>'李四'),
           array('id' => 124, 'name' =>'王五'),
           array('id' => 125, 'name' =>'赵六'),
           array('id' => 126, 'name' =>'赵六')
           );
           $key = 'id';
           assoc_unique(&$aa, $key);
           print_r($aa);
           ?>

显示结果为:Array ( [0] => Array ( [id] =>123 [name] => 张三 ) [1] => Array ([id] => 124 [name] => 王五 ) [2]=> Array ( [id] => 125 [name]=> 赵六 ) [3] => Array ( [id]=> 126 [name] => 赵六 ) )

㈡因内部的一维数组不能完全相同,而删除重复项

           <?php
           function array_unique_fb($array2D){
                foreach ($array2D as $v){
                    $v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
                    $temp[] = $v;
                }
                $temp =array_unique($temp);   //去掉重复的字符串,也就是重复的一维数组
               foreach ($temp as $k => $v){
                   $temp[$k] = explode(",",$v);  //再将拆开的数组重新组装
               }
               return $temp;
           }
           $aa = array(
           array('id' => 123, 'name' =>'张三'),
           array('id' => 123, 'name' =>'李四'),
           array('id' => 124, 'name' =>'王五'),
           array('id' => 123, 'name' =>'李四'),
           array('id' => 126, 'name' =>'赵六')
           );
           $bb=array_unique_fb($aa);
           print_r($bb)
           ?>

显示结果:Array ( [0] => Array ( [0] =>123 [1] => 张三 ) [1] => Array ( [0]=> 123 [1] => 李四 ) [2]=> Array ( [0] => 124 [1]=> 王五 ) [4] => Array ( [0]=> 126 [1] => 赵六 )) 
PHP 相关文章推荐
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 PHP
CI框架整合smarty步骤详解
May 19 PHP
[原创]php使用curl判断网页404(不存在)的方法
Jun 23 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
php三维数组去重(示例代码)
Nov 26 #PHP
php导出word格式数据的代码实例
Nov 25 #PHP
php页面防重复提交方法总结
Nov 25 #PHP
php用header函数实现301跳转代码实例
Nov 25 #PHP
保存到桌面、设为桌面且带图标的PHP代码
Nov 19 #PHP
php使浏览器直接下载pdf文件的方法
Nov 15 #PHP
限制ckeditor上传图片文件大小的方法
Nov 15 #PHP
You might like
用PHP 快速生成 Flash 动画的方法
2007/03/06 PHP
解析MySql与Java的时间类型
2013/06/22 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
js 中 document.createEvent的用法
2010/08/29 Javascript
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
python基础教程之面向对象的一些概念
2014/08/29 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
Michael Kors美国官网:美式奢侈生活风格的代表
2016/11/25 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
微笑服务演讲稿
2014/05/13 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
相亲活动方案
2014/08/26 职场文书
十佳党员事迹材料
2014/08/28 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
演讲稿之开卷有益
2019/08/07 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书