在PHP中, array_keys和array_fill_keys是兩個常用的數組函數。 array_keys可以幫助我們獲取數組中所有的鍵,而array_fill_keys允許我們使用指定的鍵,給數組填充相同的值。這兩個函數可以配合使用,實現非常實用的操作。
array_keys函數返回數組中所有的鍵名。它的語法如下:
array_keys(array $array, mixed $value = null, bool $strict = false): array
$array :輸入的數組。
$value (可選):如果提供了此參數, array_keys會返回所有值為$value的鍵。
$strict (可選):如果設置為true ,則進行嚴格比較。
array_fill_keys函數可以根據提供的鍵名數組填充一個新的數組,所有的值都設置為指定的值。它的語法如下:
array_fill_keys(array $keys, mixed $value): array
$keys :一個包含鍵名的數組。
$value :用於填充的值。
通過結合這兩個函數,我們可以先通過array_keys獲取數組中的所有鍵名,然後使用array_fill_keys重置這些鍵的值。
假設我們有一個包含多個鍵值對的數組,我們希望重置這個數組中所有鍵的值為一個指定的值,例如0 。
<?php
// 原始數組
$array = [
'apple' => 10,
'banana' => 20,
'cherry' => 30,
];
// 使用 array_keys 獲取所有的鍵名
$keys = array_keys($array);
// 使用 array_fill_keys 重置值
$newArray = array_fill_keys($keys, 0);
// 輸出重置後的數組
print_r($newArray);
?>
array_keys($array) :該函數返回數組$array中的所有鍵名。結果是一個包含'apple' 、 'banana'和'cherry'的數組。
array_fill_keys($keys, 0) :使用array_fill_keys函數,創建一個新數組,其中的鍵名與$keys數組相同,但所有的值都被填充為0 。
Array
(
[apple] => 0
[banana] => 0
[cherry] => 0
)
如上所示,所有鍵的值已被成功重置為0 。
這種技術在處理大數據時非常有用,尤其是在需要重新初始化數組的值時。假設你從一個數據庫中獲取了一個包含各種數據的數組,現在你希望對某些數據進行重置或初始化,這種方法可以有效簡化代碼。
在使用array_fill_keys時,確保傳遞的鍵名數組是有效的。如果鍵名數組為空, array_fill_keys將返回一個空數組。
如果原始數組中的某些鍵名被刪除,或者你希望重置的值和原始數組的值不同, array_fill_keys可以輕鬆地覆蓋掉原來的值。