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&amp;&amp;mysql)六
Oct 09 PHP
WINXP下apache+php4+mysql
Nov 25 PHP
初次接触php抽象工厂模式(Elgg)
Mar 21 PHP
php的一些小问题
Jul 03 PHP
php学习之 数组声明
Jun 09 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
PHP实现长文章分页实例代码(附源码)
Feb 03 PHP
PHP实现的登录,注册及密码修改功能分析
Nov 25 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
php 根据自增id创建唯一编号类
Apr 06 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
Aug 17 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中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
javascript 动态添加事件代码
2008/11/30 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
Ajax搜索结果页面下方的分页按钮的生成
2012/04/05 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
python实现实时监控文件的方法
2016/08/26 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
python3实现磁盘空间监控
2018/06/21 Python
Python求凸包及多边形面积教程
2020/04/12 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
Python实现画图软件功能方法详解
2020/07/28 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
教师的实习自我鉴定
2013/12/17 职场文书
优秀村官事迹材料
2014/01/10 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
支部书记四风问题自我剖析材料
2014/09/29 职场文书
会计求职自荐信
2015/03/26 职场文书
小学记事作文之200字
2019/08/06 职场文书