php 二位数组去重

二维数组去掉重复值

$array2D = array(

array('whitename' => 'dsfsdfsdfs', 'whitepaas' => 42342352),

array('whitename' => 'lss_ni321', 'whitepaas' => 124623),

array('whitename' => '458223@qq.com', 'whitepaas' => 12775566),

array('whitename' => 'lss_ni321', 'whitepaas' => 124623 ),

);

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;
}



$ca = array_unique_fb($array2D);
var_dump($ca);
array(3) {
  [0]=>
  array(2) {
    [0]=>
    string(10) "dsfsdfsdfs"
    [1]=>
    string(8) "42342352"
  }
  [1]=>
  array(2) {
    [0]=>
    string(9) "lss_ni321"
    [1]=>
    string(6) "124623"
  }
  [2]=>
  array(2) {
    [0]=>
    string(13) "458223@qq.com"
    [1]=>
    string(8) "12775566"
  }
}

如果你想保留数组的键值,可以用下面的函数:

$array2D = array(

array('whitename' => 'dsfsdfsdfs', 'whitepaas' => 42342352),

array('whitename' => 'lss_ni321', 'whitepaas' => 124623),

array('whitename' => '458223@qq.com', 'whitepaas' => 12775566),

array('whitename' => 'lss_ni321', 'whitepaas' => 124623 ),

);

//二维数组去掉重复值  并保留键值
function array_unique_fb($array2D)
{
  foreach ($array2D as $k=>$v)
  {
    $v = join(",",$v);  //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
    $temp[$k] = $v;
    }
  $temp = array_unique($temp);    //去掉重复的字符串,也就是重复的一维数组
    foreach ($temp as $k => $v)
  {
        $array=explode(",",$v);   //再将拆开的数组重新组装
    $temp2[$k]["whitename"] =$array[0];   
    $temp2[$k]["whitepaas"] =$array[1];
  }
    return $temp2;
}



$ca = array_unique_fb($array2D);
var_dump($ca);


array(3) {
  [0]=>
  array(2) {
    ["whitename"]=>
    string(10) "dsfsdfsdfs"
    ["whitepaas"]=>
    string(8) "42342352"
  }
  [1]=>
  array(2) {
    ["whitename"]=>
    string(9) "lss_ni321"
    ["whitepaas"]=>
    string(6) "124623"
  }
  [2]=>
  array(2) {
    ["whitename"]=>
    string(13) "458223@qq.com"
    ["whitepaas"]=>
    string(8) "12775566"
  }
}

二位数组去重

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;

}

$array2D = array(
  array('whitename' => 'dsfsdfsdfs', 'whitepaas' => 42342352,'il_id' =>519 ,'desc' => "不清楚" ,'limit_type' => 3),
  array('whitename' => 'lss_ni321', 'whitepaas' => 124623,'il_id' =>519 ,'desc' => "不清楚1" ,'limit_type' => 3),
  array('whitename' => '458223@qq.com', 'whitepaas' => 12775566,'il_id' =>519 ,'desc' => "不清楚2" ,'limit_type' => 3),
  array('whitename' => 'lss_ni321', 'whitepaas' => 124624,'il_id' =>519 ,'desc' => "不清楚1" ,'limit_type' => 3),
);



$key = 'whitename';

assoc_unique($array2D, $key);

print_r($array2D);



array(3) {
  [0]=>
  array(5) {
    ["whitename"]=>
    string(13) "458223@qq.com"
    ["whitepaas"]=>
    int(12775566)
    ["il_id"]=>
    int(519)
    ["desc"]=>
    string(10) "不清楚2"
    ["limit_type"]=>
    int(3)
  }
  [1]=>
  array(5) {
    ["whitename"]=>
    string(10) "dsfsdfsdfs"
    ["whitepaas"]=>
    int(42342352)
    ["il_id"]=>
    int(519)
    ["desc"]=>
    string(9) "不清楚"
    ["limit_type"]=>
    int(3)
  }
  [2]=>
  array(5) {
    ["whitename"]=>
    string(9) "lss_ni321"
    ["whitepaas"]=>
    int(124623)
    ["il_id"]=>
    int(519)
    ["desc"]=>
    string(10) "不清楚1"
    ["limit_type"]=>
    int(3)
  }
}

二位去重

$array2D = array(
  array('whitename' => 'dsfsdfsdfs', 'whitepaas' => 42342352,'il_id' =>519 ,'desc' => "不清楚" ,'limit_type' => 3),
  array('whitename' => 'lss_ni321', 'whitepaas' => 124623,'il_id' =>519 ,'desc' => "不清楚1" ,'limit_type' => 3),
  array('whitename' => '458223@qq.com', 'whitepaas' => 12775566,'il_id' =>519 ,'desc' => "不清楚2" ,'limit_type' => 3),
  array('whitename' => 'lss_ni321', 'whitepaas' => 124624,'il_id' =>519 ,'desc' => "不清楚1" ,'limit_type' => 3),
);


$data = array_values(array_column($array2D, NULL, 'whitename')); 
var_dump($data);

array(3) {
  [0]=>
  array(5) {
    ["whitename"]=>
    string(10) "dsfsdfsdfs"
    ["whitepaas"]=>
    int(42342352)
    ["il_id"]=>
    int(519)
    ["desc"]=>
    string(9) "不清楚"
    ["limit_type"]=>
    int(3)
  }
  [1]=>
  array(5) {
    ["whitename"]=>
    string(9) "lss_ni321"
    ["whitepaas"]=>
    int(12775566)
    ["il_id"]=>
    int(519)
    ["desc"]=>
    string(10) "不清楚3"
    ["limit_type"]=>
    int(3)
  }
  [2]=>
  array(5) {
    ["whitename"]=>
    string(13) "458223@qq.com"
    ["whitepaas"]=>
    int(12775566)
    ["il_id"]=>
    int(519)
    ["desc"]=>
    string(10) "不清楚2"
    ["limit_type"]=>
    int(3)
  }
}

二位数组 去重

$str = '{
    "status": 0,
    "result": [
        {
            "hostName": "杨新",
            "pcode2": "41675441",
            "email": "xin.yang@xx.cn",
            "selfName": "邵兵"
        },
        {
            "hostName": "杨新",
            "pcode2": "41675441",
            "email": "xin.yang@xx.cn",
            "selfName": "邵兵"
        },
        {
            "hostName": "中信国安科技控股有限公司",
            "pcode2": "9730284461",
            "email": "liuxiao@gakj.xx.com",
            "selfName": "邵兵"
        },
        {
            "hostName": "中信国安科技控股有限公司",
            "pcode2": "9730284461",
            "email": "liuxiao@gakj.xx.com",
            "selfName": "邵兵"
        },
        {
            "hostName": "刘惠",
            "pcode2": "64068956",
            "email": "huijie.liu@xx.cn",
            "selfName": "邵兵"
        },
        {
            "hostName": "刘惠",
            "pcode2": "64068956",
            "email": "huijie.liu@xx.cn",
            "selfName": "邵兵"
        },
        {
            "hostName": "刘凯南",
            "pcode2": "14818360",
            "email": "kainan.liu_3@xx.cn",
            "selfName": "邵兵"
        },
        {
            "hostName": "刘凯南",
            "pcode2": "14818360",
            "email": "kainan.liu_3@xx.cn",
            "selfName": "邵兵"
        },
        {
            "hostName": "宋纬奇",
            "pcode2": "62947142",
            "email": "weiqi.song@xx.cn",
            "selfName": "邵兵"
        },
        {
            "hostName": "宋纬奇",
            "pcode2": "62947142",
            "email": "weiqi.song@xx.cn",
            "selfName": "邵兵"
        }
    ],
    "content_type": "application/json"
}';


$res = json_decode($str, true);

echo 'num: ' . count($res['result']);

print_r($res['result']);
echo "</br></br></br>";
$rrr = $res['result'];

$serializeArrs = array_map('serialize', $rrr);

$uniqueArrs = array_unique($serializeArrs);

$unserializeArrs = array_map('unserialize', $uniqueArrs);

print_r($unserializeArrs);
echo "</br></br></br>";
echo json_encode($unserializeArrs);

php二维数组去重的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟伟哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值