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 相关文章推荐
VFP与其他应用程序的集成
Oct 09 PHP
使用Xdebug调试和优化PHP程序之[1]
Apr 17 PHP
PHP 分页原理分析,大家可以看看
Dec 21 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
PHP判断文章里是否有图片的简单方法
Jul 26 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 23 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
Aug 20 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
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
js实现日历与定时器
2017/02/22 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
详细分析vue表单数据的绑定
2020/07/20 Javascript
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
关于Python数据结构中字典的心得
2017/12/04 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
三星美国官网:Samsung美国
2017/02/06 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
旅游文化节策划方案
2014/06/06 职场文书
民主生活会剖析材料
2014/09/30 职场文书
酒店圣诞节活动总结
2015/05/06 职场文书
张思德观后感
2015/06/09 职场文书
恋恋笔记本观后感
2015/06/16 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
春节慰问简报
2015/07/21 职场文书
学会感恩主题班会
2015/08/12 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL