PHP 8.6.0 Beta 1 is available for testing

array_fill_keys

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

array_fill_keysRellena un array con valores, especificando las claves

Descripción

function array_fill_keys(array $keys, mixed $value): array

Rellena un array con el valor del argumento value, y utilizando los valores del array keys como claves.

Parámetros

keys

Array de valores que será utilizado como claves. Los valores ilegales para las claves serán convertidos en string .

value

Valor a utilizar para rellenar el array.

Valores devueltos

Devuelve el array relleno.

Ejemplos

Ejemplo #1 Ejemplo con array_fill_keys()

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

El ejemplo anterior mostrará:

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

Véase también

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 6 notes

up
66
sergli at nigma dot ru
14 years ago
<?php
$a = array("1");
var_dump(array_fill_keys($a, "test"));
?>

array(1) {
 [1]=>
 string(4) "test"
}
now string key "1" become an integer value 1, be careful.
up
33
atul dot kr_singh at hotmail dot com
13 years ago
If an associative array is used as the second parameter of array_fill_keys, then the associative array will be appended in all the values of the first array.
e.g.
<?php
$array1 = array(
 "a" => "first",
 "b" => "second",
 "c" => "something",
 "red"
);
$array2 = array(
 "a" => "first",
 "b" => "something",
 "letsc"
);
print_r(array_fill_keys($array1, $array2));
?>

The output will be
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
 )
)
up
4
ray.paseur sometimes uses gmail
4 years ago
Get an associative array of zeros for counting letter frequency
<?php
$ltrs = array_fill_keys( range('a', 'z'), 0 );
up
-2
Scratchy
18 years ago
RE: bananasims at hotmail dot com
I also needed a work around to not having a new version of PHP and wanting my own keys. bananasims code doesn't like having an array as the second parameter...
Here's a slightly modified version than can handle 2 arrays as inputs:
//we want these values to be keys
$arr1 = (0 => "abc", 1 => "def");
/we want these values to be values
$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);
returns:
abc => 452, def =>128
up
-5
bananasims at hotmail dot com
19 years ago
Some of the versions do not have this function.
I try to write it myself.
You may refer to my script below
function array_fill_keys($array, $values) {
 if(is_array($array)) {
 foreach($array as $key => $value) {
 $arraydisplay[$array[$key]] = $values;
 }
 }
 return $arraydisplay;
}
up
-3
manavchugh988 at gmail dot com
4 years ago
see array_fill_keys are basically used to make a new array from a pre-existing array in a form that the value of the pre-existing array will now be the key of the new Array .And there value will be same That we had given in the 2nd parameter . Example Below---->>>
<?php
 //pre existing array
 $a = array("a","b","c","d","e");
 //new array with a single same value 
 $newArray = array_fill_keys($a, "Testing");
 //printing the array 
 echo "<pre>";
 print_r($newArray);
 echo "</pre>";
?>
output;
 Array
(
 [a] => Testing
 [b] => Testing
 [c] => Testing
 [d] => Testing
 [e] => Testing
)
+add a note

AltStyle によって変換されたページ (->オリジナル) /