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 相关文章推荐
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
php常用Output和ptions/Info函数集介绍
Jun 19 PHP
PHP垃圾回收机制引用计数器概念分析
Jun 24 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
PHP防盗链代码实例
Aug 27 PHP
PHP SPL标准库中的常用函数介绍
May 11 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
thinkPHP微信分享接口JSSDK用法实例
Jul 07 PHP
php表单习惯用的正则表达式
Oct 11 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
PDO::_construct讲解
Jan 27 PHP
laravel5环境隐藏index.php后缀(apache)的方法
Oct 12 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 强制下载文件代码
2010/10/24 PHP
php中用数组的方法设置cookies
2011/04/21 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
js选项卡的实现方法
2015/02/09 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
python 布尔操作实现代码
2013/03/23 Python
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
django2 快速安装指南分享
2018/01/05 Python
python实现画圆功能
2018/01/25 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
Python3多线程操作简单示例
2018/05/22 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
解决python运行启动报错问题
2020/06/01 Python
Python logging模块handlers用法详解
2020/08/14 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
简单的辞职信范文
2014/01/18 职场文书
如何拟写通知正文?
2019/04/02 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
快速学习Oracle触发器和游标
2021/06/30 Oracle
JavaScript设计模式之原型模式详情
2022/06/21 Javascript