问答

php删除数组中的重复数据,只留下没有重复的数据怎么实现?

作者:admin 2021-05-13 我要评论

array( 0 =array('attr_id' = '1','attr_name' = '颜色',), 1 =array('attr_id' = '3','attr_name' = '重量',), 2 =array('attr_id' = '4','attr_name' = '速度'...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
array(
    0 =>array('attr_id' => '1','attr_name' => '颜色',),
    1 =>array('attr_id' => '3','attr_name' => '重量',),
    2 =>array('attr_id' => '4','attr_name' => '速度',),
    3 =>array('attr_id' => '1','attr_name' => '颜色',),
    4 =>array('attr_id' => '3','attr_name' => '重量',),
    5 =>array('attr_id' => '4','attr_name' => '速度',),
    6 =>array('attr_id' => '5','attr_name' => '力量',),
    7 =>array('attr_id' => '6','attr_name' => '型号',),
);

数组中重复的 attr_name 为 (颜色、重量、速度) 我要删除数组中的这些值,只留下 attr_name 为 (力量、型号) 的

如下效果

$arr = array(
    0 =>array('attr_id' => '5','attr_name' => '力量',),
    1 =>array('attr_id' => '6','attr_name' => '型号',),
);
###
$map = [];
foreach ($arr as $v) {
    if(array_key_exists($v['attr_id'],$map)){
        $map[$v['attr_id']]++;
    }else{
        $map[$v['attr_id']]=1;
    }
}

$rs = [];
for ($i=0; $i < count($arr); $i++) { 
    if($map[$arr[$i]['attr_id']] == 1){
        array_push($rs,$arr[$i]);
    }
}

print_r($rs);
###
$filter = [];
$result = [];
foreach($arr as $val){
    if (!in_array($val['attr_id'], $filter)) {
        $filter[] = $val['attr_id'];
        $result[] = $val;
    }else{
        array_splice($result, array_search($val, $result), 1);
    }
}

print_r($result);

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • php删除数组中的重复数据,只留下没有

    php删除数组中的重复数据,只留下没有

  • mongodb实际查询时间大于explain里的时

    mongodb实际查询时间大于explain里的时

  • 问一个element-ui 分页组件的问题

    问一个element-ui 分页组件的问题

  • 如何快速把DolphinDB服务端的数据快速

    如何快速把DolphinDB服务端的数据快速

腾讯云代理商
海外云服务器