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下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 PHP
php设计模式 Strategy(策略模式)
Jun 26 PHP
php IP转换整形(ip2long)的详解
Jun 06 PHP
PHP APC缓存配置、使用详解
Mar 06 PHP
PHP小教程之实现双向链表
Jun 12 PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
简单概括PHP的字符串中单引号与双引号的区别
May 07 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
thinkPHP和onethink微信支付插件分享
Aug 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
深入PHP内存相关的功能特性详解
2013/06/08 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
python检测远程udp端口是否打开的方法
2015/03/14 Python
python中xrange用法分析
2015/04/15 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
Python基于递归实现电话号码映射功能示例
2018/04/13 Python
python 以16进制打印输出的方法
2018/07/09 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
利用python汇总统计多张Excel
2020/09/22 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
计算机专业大学生的自我评价
2013/11/14 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
荷叶圆圆教学反思
2014/02/01 职场文书
市场部管理制度
2014/02/02 职场文书
新任教师自我鉴定
2014/02/24 职场文书
给校长的建议书600字
2014/05/15 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
整改通知书格式
2015/04/22 职场文书
防溺水主题班会教案
2015/08/12 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
k-means & DBSCAN 总结
2021/04/27 Python
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis