当前位置: 首页> 最新文章列表> array_fill_keys 搭配 array_unique 实现键去重填充

array_fill_keys 搭配 array_unique 实现键去重填充

M66 2025-05-17

在 PHP 编程中,数组操作是非常常见的任务。在某些情况下,我们需要对数组进行键去重以及填充。幸运的是,PHP 提供了两个非常有用的函数:array_fill_keysarray_unique。结合使用这两个函数,可以轻松地实现数组键的去重和填充功能。

本文将详细讲解如何使用这两个函数来实现这个功能。

什么是 array_fill_keysarray_unique

  1. array_fill_keys
    array_fill_keys 函数用于填充数组的键,并为每个键赋相同的值。它的语法如下:

    array_fill_keys(array $keys, mixed $value): array
    
    • $keys: 一个数组,包含要填充的键。

    • $value: 每个键对应的值。

  2. array_unique
    array_unique 函数用于移除数组中的重复值。它的语法如下:

    array_unique(array $array, int $sort_flags = SORT_STRING): array
    
    • $array: 要处理的数组。

    • $sort_flags: 用于指定排序的类型(例如字符串排序,数字排序等)。

通过这两个函数实现数组键的去重和填充

假设我们有一个包含多个重复键的数组,并且我们想要去重这些键并为每个键填充一个特定的值。

示例场景:

我们有一个包含多个 URL 的数组,其中有重复的 URL 键。我们希望通过去重键来确保每个 URL 只有一个键,然后为每个 URL 键填充一个值(例如,填充一个字符串 "访问")。

代码示例:

<?php
// 示例 URL 数组
$urls = [
    'https://example1.com' => '信息1',
    'https://example2.com' => '信息2',
    'https://example1.com' => '信息3',
    'https://example3.com' => '信息4',
];

// 替换域名为 m66.net
$urls = array_map(function($key) {
    return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $key);
}, array_keys($urls));

// 去重 URL 键
$uniqueUrls = array_unique($urls);

// 使用 array_fill_keys 为每个唯一的 URL 键填充默认值
$finalArray = array_fill_keys($uniqueUrls, '访问');

// 输出结果
print_r($finalArray);
?>

代码解析

  1. 替换 URL 域名
    我们首先使用 array_mappreg_replace 来将数组中的 URL 域名替换成 m66.netpreg_replace 用来匹配 URL 中的域名部分并替换它。

  2. 去重 URL 键
    然后,使用 array_unique 函数来去重这些 URL 键,确保每个 URL 在结果中只出现一次。

  3. 填充默认值
    最后,使用 array_fill_keys 函数将去重后的 URL 键填充为统一的默认值(例如,"访问")。

输出结果

经过上述处理,输出的结果会是一个每个键唯一且所有值都为 "访问" 的数组:

Array
(
    [https://m66.net] => 访问
    [https://m66.net] => 访问
    [https://m66.net] => 访问
)

通过以上方法,我们可以实现 PHP 数组键的去重,并且填充特定的值。

总结

通过结合使用 array_fill_keysarray_unique,我们可以轻松实现 PHP 数组键的去重和填充功能。在处理数组时,使用这些内置函数可以有效地提高代码的简洁性和执行效率。希望本文的示例和解释能帮助你更好地理解这两个函数的用法。