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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
无数据库的详细域名查询程序PHP版(3)
Oct 09 PHP
一个高ai的分页函数和一个url函数
Oct 09 PHP
PHP 日期加减的类,很不错
Oct 10 PHP
PHP中include与require使用方法区别详解
Oct 19 PHP
两级联动select刷新后其值保持不变的实现方法
Jan 27 PHP
PHP类中的魔术方法(Magic Method)简明总结
Jul 08 PHP
跟我学Laravel之路由
Oct 15 PHP
PHP实现过滤各种HTML标签
May 17 PHP
PHP中preg_match函数正则匹配的字符串长度问题
May 27 PHP
php PDO实现的事务回滚示例
Mar 23 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 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
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
四个PHP非常实用的功能
2015/09/29 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
jQuery.Callbacks()回调函数队列用法详解
2016/06/14 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
Python去除列表中重复元素的方法
2015/03/20 Python
Django中Model的使用方法教程
2018/03/07 Python
Python格式化输出%s和%d
2018/05/07 Python
python实现随机梯度下降法
2020/03/24 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
Django-migrate报错问题解决方案
2020/04/21 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
商业房地产广告语
2014/03/13 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电