php二维数组根据某个字段去重

本文介绍了一种在PHP中对二维数组根据特定字段(如'id')进行去重的方法。通过遍历数组并比较'id'字段值来实现,避免了重复元素的保留。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php的二维数组根据某个字段去重,在这默认为二维数组的结构是一样的,现在根据二维数组里的id字段去重,把id相同的重复的元素去掉

/**
 * 二维数组根据某个字段去重
 * @param array $array  二维数组
 * @para array  去重后的数组
 */
private function uniquArr($array){
    $result = array();
    foreach($array as $k=>$val){
        $code = false;
        foreach($result as $_val){
            if($_val['id'] == $val['id']){
                $code = true;
                break;
            }
        }
        if(!$code){
            $result[]=$val;
        }
    }
    return $result;
}

转载于:https://www.cnblogs.com/alisleepy/p/10131826.html

### PHP 二维数组根据指定字段方法 对于PHP中处理二维数组并依据特定字段进行的操作,可以采用多种方式实现。一种有效的方式是通过`array_column()`函数提取目标字段作为新一维数的键值,再利用`array_unique()`来消除这些键中存在的复项[^1]。 然而,在某些情况下,可能希望保留原始结构的同时仅移除那些在给定字段上具有相同值的条目。这时可以通过序列化每行数据转换成字符串形式以便比较,并结合自定义逻辑完成更复杂的过滤过程[^2]。 具体到按照某一列(比如'id')来进行唯一性筛选的例子: ```php <?php // 示例输入数据集 $data = [ ['id' => 1, 'name' => 'Alice'], ['id' => 2, 'name' => 'Bob'], ['id' => 1, 'name' => 'Charlie'], // id复 ]; // 使用 array_column 提取 id 列用于后续操作 $ids = array_column($data, 'id'); // 获取唯一的 ID $unique_ids = array_unique($ids); // 将 unique_ids 的值新索引为连续整数 $unique_ids = array_values($unique_ids); // 过滤原数,只留下首次出现的记录 $result = []; foreach ($data as $item) { if (in_array($item['id'], $unique_ids)) { $result[] = $item; // 移除已匹配成功的ID防止再次加入结果集中 unset($unique_ids[array_search($item['id'], $unique_ids)]); } } print_r($result); ?> ``` 上述代码片段展示了如何基于'id'字段二维数组执行操作[^4]。值得注意的是,这里假设每个元素都至少包含一个名为'id'的关键字;如果不是这种情况,则需提前验证或调整访问路径以适应实际的数据结构。 为了进一步优化此流程,还可以考虑使用关联数的方式来追踪已经遇到过的键值合,从而提高效率和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值