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调用三种数据库的方法(1)
Oct 09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
Jun 03 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
php中的静态变量的基本用法
Mar 20 PHP
PHP通过插入mysql数据来实现多机互锁实例
Nov 05 PHP
php读取csv数据保存到数组的方法
Jan 03 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 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技术开发微信公众平台
2015/07/22 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
非常实用的12个jquery代码片段
2015/11/02 Javascript
详解JS正则replace的使用方法
2016/03/06 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
python二分查找算法的递归实现方法
2016/05/12 Python
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
python 下载文件的多种方法汇总
2020/11/17 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
电子商务专业学生的学习自我评价
2013/10/27 职场文书
计算机专业大学生的自我评价
2013/11/14 职场文书
高中军训感言1000字
2014/03/01 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
员工手册董事长致辞
2015/07/29 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
《废话连篇——致新手》——chinapizza
2022/04/05 无线电
Python字符串的转义字符
2022/04/07 Python