PHP Conference Japan 2024

array_fill_keys

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

array_fill_keys使用键填充数组

描述

array_fill_keys(数组 $keys, 混合 $value): 数组

使用 keys 数组的值作为键,用 value 参数的值填充数组。

参数

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 条注释

67
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,请注意。
31
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] => Array(
[a] => first,
[b] => something,
[0] => letsc
),
[something] => Array(
[a] => first,
[b] => something,
[0] => letsc
),
[red] => Array(
[a] => first,
[b] => something,
[0] => letsc
)
)
3
ray.paseur sometimes uses gmail
2 年前
获取一个用于计算字母频率的零关联数组

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

我也需要一个解决方法,因为没有新版本的 PHP 并且想要我自己的键。bananasims 的代码不喜欢将数组作为第二个参数...

这是一个经过稍微修改的版本,可以处理 2 个数组作为输入

//我们希望这些值成为键
$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
-4
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;
}
-4
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