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网站提速三大“软”招
Oct 09 PHP
支持数组的ADDSLASHES的php函数
Feb 16 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
Jun 20 PHP
浅析php工厂模式
Nov 25 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
php实现图片等比例缩放代码
Jul 23 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
PHP类型约束用法示例
Sep 28 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
队列在编程中的实际应用(php)
2010/09/04 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
php发送与接收流文件的方法
2015/02/11 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
详解微信小程序开发之formId使用(模板消息)
2019/08/27 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
python实现随机森林random forest的原理及方法
2017/12/21 Python
python编写Logistic逻辑回归
2020/12/30 Python
Python 打印中文字符的三种方法
2018/08/14 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
flask项目集成swagger的方法
2020/12/09 Python
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
工作岗位说明书模板
2014/05/09 职场文书
技术负责人任命书
2014/06/05 职场文书
施工单位安全责任书
2014/07/24 职场文书
班组拓展活动方案
2014/08/14 职场文书
检讨书怎么写
2015/01/23 职场文书
质检员岗位职责
2015/02/03 职场文书
亮剑观后感300字
2015/06/05 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书