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 相关文章推荐
Access数据库导入Mysql的方法之一
Oct 09 PHP
Php 构造函数construct的前下划线是双的_
Dec 08 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
PHP调用Linux的命令行执行文件压缩命令
Jan 27 PHP
php.ini save_handler 修改不生效的解决办法
Jul 22 PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 PHP
使用xampp搭建运行php虚拟主机的详细步骤
Oct 21 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
Jun 19 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 PHP
php使用Swoole实现毫秒级定时任务的方法
Sep 04 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中对xml读取的相关函数的介绍一
2008/06/05 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
Python简单I/O操作示例
2019/03/18 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
CSS3混合模式mix-blend-mode/background-blend-mode简介
2018/03/15 HTML / CSS
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
校庆活动方案
2014/03/31 职场文书
需求分析说明书
2014/05/09 职场文书
企业承诺书怎么写
2014/05/24 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
2014年妇女工作总结
2014/12/06 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
团组织推荐意见
2015/06/05 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
详解Redis瘦身指南
2021/05/26 Redis
5道关于python基础 while循环练习题
2021/11/27 Python
使用Canvas绘制一个游戏人物属性图
2022/03/25 Javascript
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python
python小型的音频操作库mp3Play
2022/04/24 Python
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android