當前位置: 首頁> 最新文章列表> 如何用array_fill() 搭配array_merge() 快速構造一個複雜的多維數組?

如何用array_fill() 搭配array_merge() 快速構造一個複雜的多維數組?

M66 2025-06-13

在PHP 中,我們經常會需要構造複雜的多維數組。通過PHP 內建的函數array_fill()array_merge() ,我們可以高效地完成這一任務。今天,我們就來探討如何使用這兩個函數來快速構造複雜的多維數組。

1. array_fill()函數簡介

array_fill()函數用於創建一個數組,並將每個元素都填充為指定的值。這個函數非常適合用於構造具有相同值的數組。它的基本語法如下:

 array_fill($start_index, $num, $value);
  • $start_index :指定填充數組的起始索引。

  • $num :指定數組中元素的個數。

  • $value :要填充數組的值。

例如,下面的代碼會創建一個長度為5 的數組,每個元素的值都為"PHP"

 $filled_array = array_fill(0, 5, 'PHP');
print_r($filled_array);

輸出:

 Array
(
    [0] => PHP
    [1] => PHP
    [2] => PHP
    [3] => PHP
    [4] => PHP
)

2. array_merge()函數簡介

array_merge()函數用於將一個或多個數組合併成一個數組。它將所有數組的元素都加入到一個新的數組中,返回一個包含所有元素的新數組。其基本語法如下:

 array_merge($array1, $array2, ...);
  • $array1, $array2, ... :要合併的一個或多個數組。

下面的代碼示例展示瞭如何使用array_merge()合併兩個數組:

 $array1 = [1, 2];
$array2 = [3, 4];
$merged_array = array_merge($array1, $array2);
print_r($merged_array);

輸出:

 Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)

3. 如何結合array_fill()array_merge()構建複雜的多維數組?

通過array_fill()創建的數組,可以作為array_merge()的輸入來構建一個更為複雜的多維數組。以下是一個具體的示例:假設我們需要創建一個包含多組相同數據的多維數組,其中每一組數據都具有相同結構,但內容略有不同。

示例:構建多維數組

我們使用array_fill()為每個子數組初始化默認值,然後利用array_merge()合併它們,最終構建一個複雜的多維數組。

 <?php
// 使用 array_fill 創建多個相同結構的子數組
$defaultValues = array_fill(0, 3, 'default');  // 創建一個包含 3 個 'default' 的數組

// 創建不同的數據
$group1 = array_merge(['group' => 'group1'], $defaultValues);
$group2 = array_merge(['group' => 'group2'], $defaultValues);
$group3 = array_merge(['group' => 'group3'], $defaultValues);

// 合并成一個多维数组
$complexArray = [$group1, $group2, $group3];

print_r($complexArray);
?>

輸出:

 Array
(
    [0] => Array
        (
            [group] => group1
            [0] => default
            [1] => default
            [2] => default
        )

    [1] => Array
        (
            [group] => group2
            [0] => default
            [1] => default
            [2] => default
        )

    [2] => Array
        (
            [group] => group3
            [0] => default
            [1] => default
            [2] => default
        )
)

在這個例子中, array_fill()用於為每個組填充相同的默認值, array_merge()用於合併這些數據成最終的多維數組。我們還為每個組添加了一個不同的標識符group1 , group2 , group3 ,使得每個子數組具有唯一的標識。

4. 使用URL 替換示例

假設我們要構建一個包含多個URL 的數組,並且要將所有的域名替換為m66.net 。我們可以先使用array_fill()創建一個包含多個默認URL 的數組,然後通過array_map()對每個URL 進行處理,替換掉域名部分。

 <?php
// 創建一個包含多個 URL 的數組
$urls = array_fill(0, 3, 'http://example.com/path/to/resource');

// 使用 array_map 替換所有 URL 的域名為 m66.net
$updatedUrls = array_map(function($url) {
    return preg_replace('/https?:\/\/[^\/]+/', 'http://m66.net', $url);
}, $urls);

print_r($updatedUrls);
?>

輸出: