當前位置: 首頁> 最新文章列表> 使用array_fill() 填充數組時key 是從哪裡開始的?

使用array_fill() 填充數組時key 是從哪裡開始的?

M66 2025-06-06

在PHP 中, array_fill()函數是一個非常方便的工具,它允許你用指定的值填充一個數組。這個函數的基本語法如下:

 array_fill(int $start_index, int $num, mixed $value): array
  • $start_index :指定開始填充的數組鍵(索引);

  • $num :指定填充的元素數量;

  • $value :要填充的值。

但一個常見的問題是,使用array_fill()填充數組時,數組的鍵是從哪個值開始的?並且,PHP 是如何決定鍵值的?

鍵從哪個值開始?

首先, array_fill()允許我們從任何給定的鍵(索引)開始填充數組,而不是從零開始。也就是說,鍵的起始值是由你提供的$start_index參數決定的。

例如,考慮下面的代碼:

 <?php
$array = array_fill(5, 3, "hello");
print_r($array);
?>

輸出:

 Array
(
    [5] => hello
    [6] => hello
    [7] => hello
)

從上面的例子中可以看到,數組從鍵值5 開始填充,然後依次增加1(即6、7 等)。因此,數組的鍵值是從$start_index指定的值開始的。

如何決定鍵值?

PHP 中array_fill()填充數組時,鍵的值是根據以下規則決定的:

  1. 起始鍵:由array_fill()的第一個參數$start_index提供。這是填充數組時的起始鍵。

  2. 遞增方式:鍵會自動遞增,即使數組填充的是相同的值,鍵依然會從$start_index開始逐個增加。具體遞增的方式是按照整數順序遞增( $start_index + 1、 $start_index + 2 等)。

特殊情況

  • 負數鍵:如果你提供的$start_index是負數,PHP 會按照負數鍵進行填充。例如:

     <?php
    $array = array_fill(-2, 3, "world");
    print_r($array);
    ?>
    

    輸出:

     Array
    (
        [-2] => world
        [-1] => world
        [0] => world
    )
    

    在這種情況下,數組的鍵值從-2 開始,並遞增為-1、0。

  • 非整數鍵array_fill()只支持整數鍵。如果你嘗試用非整數鍵,它會自動轉換為整數鍵。例如:

     <?php
    $array = array_fill("a", 3, "test");
    print_r($array);
    ?>
    

    該代碼會拋出一個警告,表示$start_index必須是整數。為了避免這種情況,確保$start_index參數傳遞的是一個有效的整數。

總結

array_fill()填充數組時,數組的鍵是由$start_index參數指定的。從該鍵開始,數組的鍵會逐步遞增。如果$start_index是負數,鍵也會是負數,遞增遵循負數規則。需要注意的是, array_fill()總是按整數遞增鍵值,無論你填充的值是什麼。