2024 年 PHP 日本研討會

array_fill_keys

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

array_fill_keys使用指定的鍵值填滿陣列

說明

array_fill_keys(陣列 $keys, 混合 $value): 陣列

使用 value 參數的值填滿陣列,並使用 keys 陣列的值作為鍵。

參數

keys

將用作鍵值的陣列。不合法的鍵值將被轉換為 字串

value

用於填充的值

回傳值

返回填滿的陣列

範例

範例 #1 array_fill_keys() 範例

<?php
$keys
= array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'banana');
print_r($a);
?>

以上範例會輸出:

Array
(
    [foo] => banana
    [5] => banana
    [10] => banana
    [bar] => banana
)

另請參閱

新增註解

使用者貢獻的註解 6 則註解

sergli at nigma dot ru
12 年前
<?php
$a
= array("1");

var_dump(array_fill_keys($a, "test"));
?>

array(1) {
[1]=>
string(4) "test"
}

現在字串鍵 "1" 變成整數值 1,請小心。
atul dot kr_singh at hotmail dot com
11 年前
如果將關聯式陣列用作 array_fill_keys 的第二個參數,則該關聯式陣列將會被附加到第一個陣列的所有值中。
例如:
<?php
$array1
= array(
"a" => "first",
"b" => "second",
"c" => "something",
"red"
);

$array2 = array(
"a" => "first",
"b" => "something",
"letsc"
);

print_r(array_fill_keys($array1, $array2));
?>

輸出將會是:
Array(
[first] => Array(
[a] => first,
[b] => something,
[0] => letsc
),
[second] => 陣列(
[a] => first,
[b] => something,
[0] => letsc
),
[something] => 陣列(
[a] => first,
[b] => something,
[0] => letsc
),
[red] => 陣列(
[a] => first,
[b] => something,
[0] => letsc
)
)
ray.paseur 有時會使用 gmail
2 年前
取得一個以字母為鍵、值為零的關聯式陣列,用於計算字母出現頻率

<?php
$ltrs
= array_fill_keys( range('a', 'z'), 0 );
Scratchy
16 年前
回覆:bananasims at hotmail dot com

我也需要一個變通方法,因為我沒有新版本的 PHP,而且我想要自訂鍵值。bananasims 的程式碼不接受陣列作為第二個參數...

以下是一個稍微修改過的版本,可以處理兩個陣列作為輸入

//我們希望這些值作為鍵
$arr1 = (0 => "abc", 1 => "def");
//我們希望這些值作為值
$arr2 = (0 => 452, 1 => 128);

function array_fill_keys($keyArray, $valueArray) {
if(is_array($keyArray)) {
foreach($keyArray as $key => $value) {
$filledArray[$value] = $valueArray[$key];
}
}
return $filledArray;
}

array_fill_keys($arr1, $arr2);

回傳
abc => 452, def =>128
bananasims at hotmail dot com
17 年前
有些版本沒有這個函式。
我試著自己寫。
您可以參考我下面的程式碼

function array_fill_keys($array, $values) {
if(is_array($array)) {
foreach($array as $key => $value) {
$arraydisplay[$array[$key]] = $values;
}
}
return $arraydisplay;
}
manavchugh988 at gmail dot com
2 年前
array_fill_keys 基本上是用來從一個已存在的陣列建立一個新陣列,新陣列的鍵是原陣列的值,而新陣列的值則是由第二個參數指定。範例如下---->>>

<?php
//已存在的陣列
$a = array("a","b","c","d","e");

//具有相同值的新的陣列

$newArray = array_fill_keys($a, "Testing");

//印出陣列

echo "<pre>";
print_r($newArray);
echo
"</pre>";
?>
輸出:
陣列
(
[a] => Testing
[b] => Testing
[c] => Testing
[d] => Testing
[e] => Testing
)
To Top