array_values() 是 PHP 內建陣列函數,用於返回陣列中所有的值,並以數字索引 (0 起始) 重新建立索引。這對於處理關聯陣列、移除原有字串鍵名、或需按順序遍歷值的場景極為實用。
array_values(array $array): array
$input = [
'php' => 'php code',
'html' => 'html code',
'css' => 'css code',
'js' => 'js code',
];
$result = array_values($input);
/* 結果:
Array
(
[0] => php code
[1] => html code
[2] => css code
[3] => js code
)
*/
原有鍵名 php、html 等全部捨棄,值保持原順序 (PHP 7+ 保證關聯陣列插入順序)。
json_encode 輸出陣列而非物件$data = ['name' => 'John', 'age' => 25];
echo json_encode($data); // {"name":"John","age":25} 物件
echo json_encode(array_values($data)); // ["John",25] 陣列
unset() 後的非連續索引$arr = [10, 20, 30, 40]; unset($arr[1]); // [0=>10, 2=>30, 3=>40] $arr = array_values($arr); // [0=>10, 1=>30, 2=>40]
$matrix = [
'row1' => ['a', 'b'],
'row2' => ['c', 'd'],
];
$rows = array_values($matrix); // 索引重設為 0,1;子陣列索引不變
array_walk_recursive 配合參考傳遞。| 函數 | 用途 | 回傳 |
|---|---|---|
array_values | 取所有值、重設數字索引 | 索引陣列 |
array_keys | 取所有鍵名 | 索引陣列 |
array_flip | 交換鍵值 (值必須唯一且為 int/string) | 關聯陣列 |
array_values() 是 PHP 陣列處理的基石函數之一,掌握其「捨棄鍵名、保留值順序、重設索引」的特性,能輕鬆解決 JSON 輸出格式控制、陣列清理、索引重組等高頻需求。記住:它永遠回傳新陣列,不會修改原陣列。