最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • PHP 中对数组去重并保持键名的最佳方法

    php 中对数组去重且保持键名的最佳方法有两种:array_unique():可去重但不保留键名,重新索引数组。自定义函数 array_unique_preserve_keys():使用哈希值比较值,可去重并保留键名。

    PHP 中对数组去重并保持键名的最佳方法

    PHP 中对数组去重并保持键名的最佳方法

    在 PHP 中,数组去重是指删除重复的值,同时保持键名不变。这在处理来自不同来源的可能包含重复元素的数据时非常有用,例如来自多个表单提交或数据库查询。

    方法 1:array_unique()

    立即学习PHP免费学习笔记(深入)”;

    array_unique() 函数是内置的 PHP 函数,用于对数组进行去重。它接受一个数组作为输入,并返回一个新的数组,其中重复的值已被删除。但是,array_unique() 不会保留键名,而是重新索引数组,从 0 开始。

    示例:

    $arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a'];
    
    $result = array_unique($arr);
    
    print_r($result); // 输出:['a', 'b', 'c', 'd', 'e']

    方法 2:自定义函数

    为了保持键名,我们可以编写一个自定义函数来对数组进行去重。此方法使用关联数组并比较每个值的哈希值来确定是否重复。

    示例:

    function array_unique_preserve_keys($arr)
    {
        $hash = [];
        $unique_arr = [];
    
        foreach ($arr as $key => $value)
        {
            $hash_value = md5($value);
            if (!isset($hash[$hash_value]))
            {
                $hash[$hash_value] = 1;
                $unique_arr[$key] = $value;
            }
        }
    
        return $unique_arr;
    }
    
    $arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a'];
    
    $result = array_unique_preserve_keys($arr);
    
    print_r($result); // 输出:['a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e']

    实战案例:

    假设我们有一个来自表单提交的数组,其中包含重复的用户名和电子邮件地址。通过使用 array_unique_preserve_keys() 函数对其进行去重,我们可以移除重复记录,同时保持用户的用户名。

    $form_data = [
        ['username' => 'john', 'email' => 'john@example.com'],
        ['username' => 'jane', 'email' => 'jane@example.com'],
        ['username' => 'john', 'email' => 'john@example.org'],
        ['username' => 'mark', 'email' => 'mark@example.net']
    ];
    
    $unique_users = array_unique_preserve_keys($form_data);
    
    print_r($unique_users); // 输出:['john' => ['username' => 'john', 'email' => 'john@example.com'], 'jane' => ['username' => 'jane', 'email' => 'jane@example.com'], 'mark' => ['username' => 'mark', 'email' => 'mark@example.net']]
    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » PHP 中对数组去重并保持键名的最佳方法
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 294稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情