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

PHP教程

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

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

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

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

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

例1代码如下:

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

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


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

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