php数组根据键名去掉重复的值!!

图片描述

有一个数组,图中user_realname值朱菲有重复的,现在想去掉重复的,保留一个就行。这个循环怎么写,俺是菜鸟,望前辈们指教。。

阅读 2.5k
4 个回答

如果是数据库查出来的,查询的时候用 group by user_realname。
如果是写死的数据,foreach循环进行对比,重复的用unset()去掉。

你可以试试这个投机取巧的玩法

function repeat(array $input, string $key): array
    {
        $data = [];
        
        foreach ($input as $val) {
            $data[$val[$key]] = $val;
        }
        
        sort ($data);
        
        return $data;
    }
    
    
    var_dump (repeat ($data, 'user_realname'));

如果数据不大,假设保留第一个

<?php

$arr = [
    [
        'id_user'=>1,
        'user_realname'=>'刘德华'
    ],
    [
        'id_user'=>2,
        'user_realname'=>'郭富城'
    ],
    [
        'id_user'=>3,
        'user_realname'=>'张学友'
    ],
    [
        'id_user'=>4,
        'user_realname'=>'黎明'
    ],
    [
        'id_user'=>5,
        'user_realname'=>'刘德华'
    ],
];

$isExistRealName = [];
$newArr = array_filter($arr, function ($v) use (&$isExistRealName) {
    if (!in_array($v['user_realname'], $isExistRealName)) {
        array_push($isExistRealName, $v['user_realname']);
        return true;
    }
    
    return false;
});

var_dump($newArr);

array_unqiue

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题