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 相关文章推荐
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
php变量作用域的深入解析
Jun 03 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
php绘图之加载外部图片的方法
Jan 24 PHP
PHP实现指定字段的多维数组排序函数分享
Mar 09 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
PHP编写daemon process详解及实例代码
Sep 30 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
Jul 09 PHP
完美解决Thinkphp3.2中插入相同数据的问题
Aug 01 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
apache集成php7.3.5的详细步骤
Jun 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
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
通过命令行创建vue项目的方法
2017/07/20 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
Windows下安装 node 的版本控制工具 nvm
2020/02/06 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
vscode自定义vue模板的实现
2021/01/27 Vue.js
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
Python tornado上传文件的功能
2020/03/26 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
安装pyinstaller遇到的各种问题(小结)
2020/11/20 Python
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
工商管理应届生求职信
2013/10/07 职场文书
21岁生日感言
2014/02/27 职场文书
态度决定一切演讲稿
2014/05/20 职场文书
护理专科学生自荐书
2014/07/05 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
2014年评职称工作总结
2014/11/20 职场文书
flex弹性布局详解
2022/03/20 HTML / CSS