當前位置: 首頁> 最新文章列表> 使用array_values 清理數組中的非連續鍵

使用array_values 清理數組中的非連續鍵

gitbox 2025-05-28

什麼是數組鍵不連續?

假設我們有一個數組:

 $array = [
    0 => '蘋果',
    1 => '香蕉',
    3 => '橘子',
    5 => '葡萄'
];

可以看到,數組的鍵為0、1、3、5,中間出現了斷開的情況。如果我們遍歷這個數組,雖然值是正常的,但如果依賴鍵值,可能會產生意想不到的結果。


array_values函數的作用

array_values函數的作用是返回數組中所有的值,並且會重新索引這些值,鍵名將從0開始依次遞增,確保數組的鍵是連續的數字。

語法示例:

 array_values(array $array): array

返回值是一個新數組,包含原數組的所有值,但鍵名重新索引。


使用示例

針對上面的不連續鍵數組,我們用array_values來處理:

 <?php

$array = [
    0 => '蘋果',
    1 => '香蕉',
    3 => '橘子',
    5 => '葡萄'
];

$cleanArray = array_values($array);

print_r($cleanArray);

輸出結果:

 Array
(
    [0] => 蘋果
    [1] => 香蕉
    [2] => 橘子
    [3] => 葡萄
)

通過array_values ,我們成功將數組鍵變為連續的0、1、2、3。


什麼時候需要使用array_values?

  • 當你通過某些操作刪除了數組中間的元素,導致鍵名不連續。

  • 需要對數組進行索引遍歷(如for循環),連續的數字鍵更加方便。

  • 將數組傳遞給需要連續數字鍵的函數或接口。

  • 需要清理用戶輸入或處理數據庫查詢返回的非連續數組。


結合實際項目中的應用

假如你通過接口或數據庫查詢返回瞭如下數組(例如json_decode得到的結果):

 <?php

$apiResponse = [
    2 => 'Tom',
    4 => 'Jerry',
    7 => 'Spike'
];

你需要將其變成可直接循環處理的數組:

 $cleaned = array_values($apiResponse);

foreach ($cleaned as $key => $name) {
    echo "編號 {$key},姓名:{$name}" . PHP_EOL;
}

輸出:

 編號 0,姓名:Tom
編號 1,姓名:Jerry
編號 2,姓名:Spike

小結

  • array_values是PHP中重建數組索引的簡單有效方法。

  • 適用於鍵名不連續或被刪除後需要重置索引的數組。

  • 對數組進行重新索引後,可以避免很多遍歷和邏輯判斷上的複雜性。


想了解更多PHP技巧,歡迎訪問:

 <a href="https://gitbox.net/php-array-functions">PHP數組函數大全</a>