```
~~~
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
- laravel
- 安装
- 创建数据
- 创建控制器
- 错误
- 权限认证
- 图形验证码
- 管理员
- 无限分类
- 视频播放
- 推流
- pc页面
- thinkphp5
- 表单提交安全验证
- crontab
- 获取下级所有数据
- 过滤敏感词
- 二维码
- 邀请码
- jwt token
- 笛卡尔
- 高并发解决优化
- 设置多语言
- 计算经纬度两点距离
- 分片上传
- centos swoole
- 查看swoole版本
- centos 安装 redis
- 把整数随机分成n份或者红包
- 生成随机字符串
- 获取上级
- 宝塔搭建nginx推拉流
- 生成二维码海报
- 二维数组去重
- 经纬度 ---边距 和判断是不是范围内
- workerman
- 扩展
- redis
- mysql
- mysql 主从复制
- 定位问题语句
- 列的选择规则
- Enum介绍
- 索引介绍
- 延迟关联
- in 查询陷阱
- limit 优化
- 事务
- 读写分离
- mysql 权限错误
- mysql计算距离
- mysql数据导出导入
- 索引失效
- mysql 语句技巧
- linux
- 配置nginx 高可用
- Nginx内核参数优化
- 配置优化
- nginx-keepalived实现高可用负载
- lvs+keepalived
- centos5关闭防火墙
- nginx操作
- linux操作
- mysql 安装
- php
- 安装phpadmin
- php7安装mongodb
- 查看php位置
- 查找开启的进程端口
- 守护进程
- centos安装php7.2
- centos 错误解决
- 安装php7错误
- mysql 错误
- 支付宝支付
- html
- js 倒计时
- go vscode 配置
- go util
- 获取两个数之间随机数
- java
- lambda
- 随机抽取
- lombok
- springboot
- 常见注解
- 接受参数常用注解
- 文件上传
- 上传错误日志拦截
- 拦截器
- 定时任务
- mybatis
- 关联查询
- 全局配置
- 缓存
- git
- 微信相关
- 体现到零钱
- 服务商转账
- 公众号小程序相关
- 小程序二维码
- svn
- layui