联系电话:0755-27515592
最新动态:

PHP教程

你的位置: 首页>>智慧亿恩>>PHP教程

PHP二维数组去重复项自定义函数

点击数:30032015-07-31 10:37:12 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技

新闻摘要:如果我们是一维数据去重复项就不要说了有直接的函数了,但二维数据php未提供函数了,下面小编来给大家推荐两个不错的二维数组去重复项自定义函数吧. 例1代码如下: function unique_arra

如果我们是一维数据去重复项就不要说了有直接的函数了,但二维数据php未提供函数了,下面小编来给大家推荐两个不错的二维数组去重复项自定义函数吧.

例1代码如下:

  1. function unique_array_2d($array2D,$stkeep=false,$ndformat=true) 
  2. { 
  3.        // 判断是否保留一级数组键 (一级数组键可以为非数字) 
  4.        if($stkeep) $stArr = array_keys($array2D); 
  5.  
  6.        // 判断是否保留二级数组键 (所有二级数组键必须相同) 
  7.        if($ndformat) $ndArr = array_keys(end($array2D)); 
  8.  
  9.        //降维,也可以用implode,将一维数组转换为用逗号连接的字符串 
  10.        foreach ($array2D as $v){ 
  11.                $v = join(",",$v);  
  12.                $temp[] = $v; 
  13.        } 
  14.  
  15.        //去掉重复的字符串,也就是重复的一维数组 
  16.        $temp = array_unique($temp); 
  17.  
  18.        //再将拆开的数组重新组装 
  19.        foreach ($temp as $k => $v) 
  20.        { 
  21.                if($stkeep) $k = $stArr[$k]; 
  22.                if($ndformat) 
  23.                { 
  24.                        $tempArr = explode(",",$v);  
  25.                        foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval; 
  26.                } 
  27.                else $output[$k] = explode(",",$v);  
  28.        } 
  29.  
  30.        return $output; 
  31. } 
  32.  
  33. $array2D = array( 
  34.        'first'=>array('title'=>'1111','date'=>'2222'), 
  35.        'second'=>array('title'=>'1111','date'=>'2222'), 
  36.        'third'=>array('title'=>'2222','date'=>'3333') 
  37. ); 
  38.  
  39. echo "<pre>"; 
  40. print_r(unique_array_2d($array2D,true)); 
  41.  
  42. /** 
  43. * 将二维数组通过指定的 key 去重 
  44. * 
  45. * @param array $arr 要去重的数组 
  46. * @param array $by  指定key去重,该参数不指定将返回 array() 
  47. * @return array 
  48. */ 
  49. function array_multunique($arr,$by = array()) { 
  50.        $temp = array(); 
  51.        foreach($arr as $key => $val) { 
  52.                foreach($by as $v) { 
  53.                        $temp[$key] .= isset($val[$v]) ? $val[$v] : ''; 
  54.                } 
  55.        } 
  56.        return array_intersect_key($arr,array_unique($temp)); 
  57. } 
  58. /*$aa = array (   
  59.    array ('id' => 123, 'name' => '张三' ),    
  60.    array ('id' => 123, 'name' => '李四' ),    
  61.    array ('id' => 124, 'name' => '王五' ),    
  62.    array ('id' => 125, 'name' => '赵六' ),    
  63.    array ('id' => 126, 'name' => '赵六' )    
  64. );   
  65. $key = 'id';   
  66. array_multunique ($aa, array('id')); */ 
  67.  
  68. function array_remove_key($array,$keys){ 
  69.        if (!is_array($array) || !is_array($keys)){ 
  70.                return false; 
  71.        } 
  72.        foreach($array as $t){ 
  73.                foreach($keys as $k){ 
  74.                        unset($t[$k]); 
  75.                } 
  76.                $doc[]=$t; 
  77.        } 
  78.        return $doc; 
  79.  
  80. } 
  81. /*$array = array( 
  82.        '0' => array('a' => 'aaaaa', 'b' => 'bbbbb', 'c' => array('d' => 'ddddd', 'e' => 'eeeee')), 
【责任编辑:】(Top) 返回页面顶端
贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
亿恩科技手机站
关注亿恩科技微信

亿恩科技—企业信息化一站式服务专家


Copyright © 2008- 深圳市亿恩科技有限公司版权所有 粤ICP备15056041号

联系我们 | 常见问题 | 在线留言 | 支付方式 | 软件开发 | 我的观点 | 资质荣誉 | 服务流程