假設我們有一個數組:
$array = [
0 => '蘋果',
1 => '香蕉',
3 => '橘子',
5 => '葡萄'
];
可以看到,數組的鍵為0、1、3、5,中間出現了斷開的情況。如果我們遍歷這個數組,雖然值是正常的,但如果依賴鍵值,可能會產生意想不到的結果。
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。
當你通過某些操作刪除了數組中間的元素,導致鍵名不連續。
需要對數組進行索引遍歷(如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>