程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP二維數組去重的方法(保留各個鍵值的同時去除重復的項)-- 二維數組的唯一性

PHP二維數組去重的方法(保留各個鍵值的同時去除重復的項)-- 二維數組的唯一性

編輯:關於PHP編程

PHP二維數組去重的方法(保留各個鍵值的同時去除重復的項)-- 二維數組的唯一性


對於如下二維數組,要求對其進行去重:

 

$arr = array(
          '0'=>array(
                    'name'=>'james',
                    'age'=>30,
                    ),
          '1'=>array(
                    'name'=>'susu',
                    'age'=>26,
                    ),
          '2'=>array(
                    'name'=>'james',
                    'age'=>30,
                    ),
          'new'=>array(
                    'name'=>'kube',
                    'age'=>37,
                    ),
          'list'=>array(
                    'name'=>'kube',
                    'age'=>27,
                    ),
          );


 

1、 二維數組內部的一維數組中的值不能完全相同,刪除其中重復的項:

代碼如下:

 

array(
                   'name'=>'james',
                   'age'=>30,
                   ),
          '1'=>array(
                   'name'=>'susu',
                   'age'=>26,
                   ),
           '2'=>array(
                   'name'=>'james',
                   'age'=>30,
                   ),
           'new'=>array(
                   'name'=>'kube',
                   'age'=>37,
                   ),
           'list'=>array(
                   'name'=>'kube',
                   'age'=>27,
                   ),
           );
printf(Before tranform the array:
);   //輸出原來的數組
print_r($arr);
echo 
;
function more_array_unique($arr=array()){
    foreach($arr[0] as $k => $v){
        $arr_inner_key[]= $k;   //先把二維數組中的內層數組的鍵值記錄在在一維數組中
    }
    foreach ($arras $k => $v){
        $v =join(,,$v);    //降維 用implode()也行
        $temp[$k] =$v;      //保留原來的鍵值 $temp[]即為不保留原來鍵值
    }
    printf(After split the array:
);
    print_r($temp);    //輸出拆分後的數組
    echo
;
    $temp =array_unique($temp);    //去重:去掉重復的字符串
    foreach ($tempas $k => $v){
        $a = explode(,,$v);   //拆分後的重組 如:Array( [0] => james [1] => 30 )
        $arr_after[$k]= array_combine($arr_inner_key,$a);  //將原來的鍵與值重新合並
    }
    //ksort($arr_after);//排序如需要:ksort對數組進行排序(保留原鍵值key) ,sort為不保留key值
    return$arr_after;
}
    $arr_new = more_array_unique($arr);  //調用去重函數
    printf(Duplicate removal of the array:
);
    print_r($arr_new);
echo 
;
?>


 

輸出結果:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved