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数组中的重复值的实现代码
Jul 17 PHP
工厂模式在Zend Framework中应用介绍
Jul 10 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
php实现通用的从数据库表读取数据到数组的函数实例
Mar 21 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
自制PHP框架之路由与控制器
May 07 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 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生成略缩图代码
2012/07/16 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
Python中用Spark模块的使用教程
2015/04/13 Python
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
对python Tkinter Text的用法详解
2018/10/11 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
房地产项目建议书
2014/03/12 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
客户答谢会致辞
2015/01/20 职场文书
毕业生政审意见范文
2015/06/04 职场文书
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript