为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 二维数组去重问题求指教,有内置函数吗?

PHP 二维数组去重问题求指教,有内置函数吗?

PHP
慕丝7291255 2019-03-02 20:10:01
数据格式:$data = [     [        'id'=>'a8856',        'date'=>'20100612'     ],     [        'id'=>'a8856',        'date'=>'20180102'     ],     [        'id'=>'top856',        'date'=>'20100612'     ],     [        'id'=>'c8236',        'date'=>'20100612'     ],     [        'id'=>'e2569',        'date'=>'20010612'     ],     [        'id'=>'e2569',        'date'=>'20150825'     ] ];寻求帮助:上述数组中id值可能重复,但date值唯一,我想去重重复项,保留日期最新记录,例如:2个id都是e2569,但date一个是2001的另一个是2015的,就删除2001这一条,保留2015这条记录,可能会有多个id重复的值。在线几等、、、求demo谢谢,或者内置函数有能解决此问题的吗?
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

foreach($data as $v){    if(!isset($arr[$v['id']])){
        $arr[$v['id']] = $v;
    }elseif($arr[$v['id']]['date'] < $v['date']){
        $arr[$v['id']]['date'] = $v['date'];
    }
}
$new = array_values($arr);


查看完整回答
反对 回复 2019-03-02
?
FFIVE

TA贡献1797条经验 获得超6个赞

比较笨
usort( $data,function($a1,$a2){return $a1['date']>$a2['date'];} );
$result=array_combine(array_column($data,'id'),array_column ( $data,'date'));
$result=array_map(function($m,$n){return ['id'=>$m,'date'=>$n];},array_keys($result),array_values($result));
var_dump($result);

查看完整回答
反对 回复 2019-03-02
  • 2 回答
  • 0 关注
  • 681 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信