国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP二維數(shù)組去重復(fù)項(xiàng)自定義函數(shù)

2024-09-04 11:46:14
字體:
供稿:網(wǎng)友

如果我們是一維數(shù)據(jù)去重復(fù)項(xiàng)就不要說了有直接的函數(shù)了,但二維數(shù)據(jù)php未提供函數(shù)了,下面小編來給大家推薦兩個(gè)不錯(cuò)的二維數(shù)組去重復(fù)項(xiàng)自定義函數(shù)吧.

例1代碼如下:

  1. function unique_array_2d($array2D,$stkeep=false,$ndformat=true) 
  2.        // 判斷是否保留一級(jí)數(shù)組鍵 (一級(jí)數(shù)組鍵可以為非數(shù)字) 
  3.        if($stkeep$stArr = array_keys($array2D); 
  4.  
  5.        // 判斷是否保留二級(jí)數(shù)組鍵 (所有二級(jí)數(shù)組鍵必須相同) 
  6.        if($ndformat$ndArr = array_keys(end($array2D)); 
  7.  
  8.        //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號(hào)連接的字符串 
  9.        foreach ($array2D as $v){ 
  10.                $v = join(",",$v);  
  11.                $temp[] = $v
  12.        } 
  13.  
  14.        //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組 
  15.        $temp = array_unique($temp); 
  16.  
  17.        //再將拆開的數(shù)組重新組裝 
  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. * 將二維數(shù)組通過指定的 key 去重 
  42. * 
  43. * @param array $arr 要去重的數(shù)組 
  44. * @param array $by  指定key去重,該參數(shù)不指定將返回 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')), 
  79.        '1' => array('a' => 'aaaaa', 'b' => 'bbbbb', 'c' => array('d' => 'ddddd', 'e' => 'eeeee')) 
  80. ); 
  81. print_r( array_remove_key($array,array('c')));*/ 
  82.  
  83. function array_remove_key_val(&$a,$b,$c){ 
  84.        foreach ($a as $key=>$value){ 
  85.                if ( isset($value[$b]) && ($value[$b]==$c) ){ 
  86.                        unset($a[$key]); 
  87.                } 
  88.        } 
  89. /*$a=array( 
  90.        array('id'=>1,'num'=>10,'type'=>'news'), 
  91.        array('id'=>2,'num'=>100,'type'=>'pic') 
  92. ); 
  93. print_r( array_remove_key_val($a,"id","1") );*/ 

例2代碼如下:

  1. /二維數(shù)組去掉重復(fù)值 
  2. function array_unique_fb($array2D){ 
  3.      foreach ($array2D as $v){ 
  4.          $v = join(",",$v);  //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號(hào)連接的字符串 
  5.          $temp[] = $v
  6.      } 
  7.      $temp = array_unique($temp);    //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組 
  8.     foreach ($temp as $k => $v){ 
  9.         $temp[$k] = explode(",",$v);   //再將拆開的數(shù)組重新組裝 
  10.     } 
  11.     return $temp
  12.  
  13.  
  14. //二維數(shù)組去掉重復(fù)值  并保留鍵值 
  15. function array_unique_fb($array2D){ 
  16.     foreach ($array2D as $k=>$v){ 
  17.         $v = join(",",$v);  //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號(hào)連接的字符串 
  18.   $temp[$k] = $v
  19.     } 
  20.  $temp = array_unique($temp);    //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組 
  21.     foreach ($temp as $k => $v){ 
  22.         $array=explode(",",$v);  //再將拆開的數(shù)組重新組裝 
  23.   $temp2[$k]["id"] =$array[0];    
  24.   $temp2[$k]["litpic"] =$array[1]; 
  25.   $temp2[$k]["title"] =$array[2]; 
  26.   $temp2[$k]["address"] =$array[3]; 
  27.   $temp2[$k]["starttime"] =$array[4]; 
  28.   $temp2[$k]["endtime"] =$array[5]; 
  29.   $temp2[$k]["classid"] =$array[6]; 
  30.   $temp2[$k]["ename"] =$array[7]; 
  31.  } 
  32.     return $temp2

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 昌吉市| 新津县| 大姚县| 德保县| 东明县| 来凤县| 威信县| 米易县| 铜山县| 丰台区| 凭祥市| 缙云县| 蒙阴县| 太谷县| 兴安盟| 明光市| 克拉玛依市| 布拖县| 涿州市| 诸城市| 盈江县| 澄迈县| 来宾市| 中牟县| 永吉县| 尉犁县| 孝昌县| 洞头县| 德化县| 本溪| 元谋县| 炎陵县| 澄迈县| 赞皇县| 隆昌县| 都匀市| 靖边县| 石嘴山市| 兴安盟| 普安县| 喜德县|