isset php 二维数组_php 数组去重,一维数组去重,二维数组去重

php 数组去重

一维数组

方法1:

array_unique($mobile_array);

方法2:

$mobile_array = array_flip($mobile_array);

$mobile_array = array_keys($mobile_array);

两方法比较

对于批量来说 后者效率更高,前者用起来挺方便

二维数组

没有现成的方法,用以下方法处理下

/**

* 二位数组去除重复值

* @param $arr 传入数组

* @param $key 判断的key值

* @return array

*/

function array_unset($arr,$key){ //$arr->传入数组 $key->判断的key值

//建立一个目标数组

$res = array();

foreach ($arr as $value) {

//查看有没有重复项

if(isset($res[$value[$key]])){

//有:销毁

unset($value[$key]);

}else{

$res[$value[$key]] = $value;

}

}

return $res;

}

二维数组去重另外一种方法

最近用到了一个获取历史会议列表的问题,需要去这个多维数组去重后返回返回给客户端,这里使用了几个php的组装函数,分享下,示例代码如下:

$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 "";

$rrr = $res['result'];

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

$uniqueArrs = array_unique($serializeArrs);

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

print_r($unserializeArrs);

echo "";

echo json_encode($unserializeArrs);

关于php的序列化的确是几年前才使用的技术,目前大家更多的是使用json_encode,且后者效率也比php的序列化高。

序列化也还是很有用的。上面的例子中主要是函数array_map()和array_unique()的结合使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值