在开发过程中难免会遇到数据有重复的问题,那么下面给大家分享一个比较有效的方法。
(1)第一种方式
//二维数组数据去重
$temp=[];
foreach($label_name as $k=>$v){
if(!in_array($v['name'],$temp)){
$temp[]=$v['name'];
}else{
unset($label_name[$k]);
}
}
$label_name是你的数组
$v['name']的name是你希望根据哪个字段去重的字段名
//把去重后的数组重构一下,因为key可能会出现0 1 3的情况
$label_arr=[];
foreach ($label_name as $kk=>$vv){
$label_arr1['label_id']=$vv['label_id'];
$label_arr1['name']=$vv['name'];
array_push($label_arr,$label_arr1);
}
$videoList[$key]['label']=$label_arr;
(2)第二种方式 可以自己封装起来,用到的时候调用即可
注:$arr为你去重的数组 $key为你要根据哪个字段去去重
static function second_array_unique_bykey($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]); //销毁一个变量 如果$tmp_arr中已存在相同的值就删除该值
}
else {
$tmp_arr[$k] = $v[$key]; //将不同的值放在该数组中保存
// array_push($tmp_arr,$v[$key]);
}
}
//ksort($arr); //ksort函数对数组进行排序(保留原键值key) sort为不保留key值
return $arr;
}