php二维数组如何去重?(代码示例)

php二维数组如何去重?(代码示例)

内容导读

收集整理的这篇技术教程文章主要介绍了php二维数组如何去重?(代码示例),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1970字,纯文字阅读大概需要3分钟

内容图文

本篇文章给大家带来的内容是介绍php二维数组如何去重?(代码示例),让大家了解二维数组去重的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

前言:php一维数组去重很简单,直接array_unique($arr)即可,但是二维数组是如何去重的?

下面我们就通过简单的代码示例来看看二维数组去重的方法:

代码示例:

/* * 二维数组去重 * 注意:二维数组中的元素个数必须一致,且键值也得一致,否则无意义 * @param array $arr * @return array $arr_after */public function array_unique_2DArr($arr=array()){

if(empty($arr) || !is_array($arr)){



return array();

}

/*******处理二维数组个数不一致问题
start 其他项目用可以去掉*******/

//判断数组中二维数组是否包含uniqueId,存在的话需要处理其他的日志信息,全部加上uniqueId,且uniqueId值必须相同

$hasUniqueId = false;

foreach($arr as $val){



if(array_key_exists('uniqueId', $val)){





$hasUniqueId = true;





break;



}

}

//如果$arr中的二维数组中uniqueId存在,则其他也增加

if($hasUniqueId){



foreach($arr as $_k=>$_val){





if(!array_key_exists('uniqueId', $_val)){







//在$_val中增加unique,只是为了和其他的带有uniqueId键值的数组元素个数保持一致










 $_val_keys = array_keys($_val);







$_val_vals = array_values($_val);







array_unshift($_val_keys, 'uniqueId');







array_unshift($_val_vals, '0_0');







$arr[$_k] = array_combine($_val_keys, $_val_vals);





}



}

}

/********处理二维数组个数不一致问题
end********/

foreach($arr[0] as $k => $v){




$arr_inner_key[]= $k;
 //先把二维数组中的内层数组的键值记录在在一维数组中


}

foreach ($arr as $k => $v){




$v =join("^",$v);
 //降维 用implode()也行 ,注意,拆分时不能用逗号,用其他的不常用符号,逗号可能会由于数据本身含有逗号导致失败



$temp[$k] =$v;


//保留原来的键值


}

$temp =array_unique($temp);

//去重:去掉重复的字符串

foreach ($temp as $k => $v){




$a = explode("^",$v);
 //拆分后的重组



 $arr_after[$k]= array_combine($arr_inner_key,$a);
//将原来的键与值重新合并


}

return $arr_after;
}

总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多相关视频教程推荐:php教程!

以上就是php二维数组如何去重?(代码示例)的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php二维数组如何去重?(代码示例)全部内容,希望文章能够帮你解决php二维数组如何去重?(代码示例)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com