<?php
$a = array("1");
var_dump(array_fill_keys($a, "test"));
?>
array(1) {
[1]=>
string(4) "test"
}
现在字符串键“1”变成了整数 1,请注意。
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
array_fill_keys — 使用键填充数组
返回填充后的数组
示例 #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 )
<?php
$a = array("1");
var_dump(array_fill_keys($a, "test"));
?>
array(1) {
[1]=>
string(4) "test"
}
现在字符串键“1”变成了整数 1,请注意。
如果将关联数组用作 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
)
)
获取一个用于计算字母频率的零关联数组
<?php
$ltrs = array_fill_keys( range('a', 'z'), 0 );
回复: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
一些版本没有这个函数。
我尝试自己编写它。
您可以参考我下面的脚本
function array_fill_keys($array, $values) {
if(is_array($array)) {
foreach($array as $key => $value) {
$arraydisplay[$array[$key]] = $values;
}
}
return $arraydisplay;
}
参见 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
)