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下使用以下代码连接并测试
Apr 09 PHP
PHP获取文件夹大小函数用法实例
Jul 01 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
Aug 21 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
你不知道的文件上传漏洞php代码分析
Sep 29 PHP
thinkPHP框架实现生成条形码的方法示例
Jun 06 PHP
laravel中的一些简单实用功能
Nov 03 PHP
php多进程应用场景实例详解
Jul 22 PHP
PHP连接MySQL数据库操作代码实例解析
Jul 11 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
joomla内置的表单验证功能使用方法
2010/06/11 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
PHP中串行化用法示例
2016/11/16 PHP
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
详解Python中dict与set的使用
2015/08/10 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
python安装gdal的两种方法
2019/10/29 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
Django封装交互接口代码
2020/07/12 Python
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
计算机软件个人的自荐信范文
2013/12/01 职场文书
一名女生的自荐信
2013/12/08 职场文书
采购内勤岗位职责
2013/12/10 职场文书
大学生的四年学习自我评价
2013/12/13 职场文书
高三政治教学反思
2014/02/06 职场文书
公司营业员的自我评价
2014/03/04 职场文书
服务整改报告
2014/11/06 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
采购内勤岗位职责
2015/04/13 职场文书
教师节座谈会主持词
2015/07/03 职场文书
践行三严三实心得体会(2016推荐篇)
2016/01/06 职场文书