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中检查PHP文件是否有语法错误的方法
Dec 23 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 PHP
php的dl函数用法实例
Nov 06 PHP
PHP实现递归无限级分类
Oct 22 PHP
smarty简单应用实例
Nov 03 PHP
PHP基于yii框架实现生成ICO图标
Nov 13 PHP
详解PHP的Yii框架中日志的相关配置及使用
Dec 08 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
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 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
Python中的asyncio代码详解
2019/06/10 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
2019/09/05 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
办公室文秘自我评价
2013/09/21 职场文书
公务员总结性个人自我评价
2013/12/05 职场文书
申报职称专业技术个人的自我评价
2013/12/12 职场文书
迎接领导欢迎词
2014/01/11 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python