array_fill_keys

(PHP 5 >= 5.2.0)

array_fill_keysСоздает массив и заполняет его значениями, с определенными ключами

Описание

array array_fill_keys ( array $keys , mixed $value )

Создает и заполняет массив значением параметра value, используя значения массива keys в качестве ключей.

Список параметров

keys

Массив значений, которые будут использованы в качестве ключей. Некорректные ключи массива будут преобразованы в string.

value

Заполняемое значение

Возвращаемые значения

Возвращает заполненный массив

Примеры

Пример #1 Пример использования array_fill_keys()

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

Результат выполнения данного примера:

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

Смотрите также

  • array_fill() - Заполняет массив значениями
  • array_combine() - Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений

Коментарии

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;
}
2006-12-19 07:03:24
http://php5.kiev.ua/manual/ru/function.array-fill-keys.html
Автор:
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
2008-05-02 17:18:03
http://php5.kiev.ua/manual/ru/function.array-fill-keys.html
Автор:
Scratchy's version still doesn't work like the definition describes.  Here's one that can take a mixed variable as the second parameter, defaulting to an empty string if it's not specified.  Don't know if this is exactly how the function works in later versions but it's at least a lot closer.

function array_fill_keys($target, $value = '') {
    if(is_array($target)) {
        foreach($target as $key => $val) {
            $filledArray[$val] = is_array($value) ? $value[$key] : $value;
        }
    }
    return $filledArray;
}

This works for either strings or numerics, so if we have

$arr1 = array(0 => 'abc', 1 => 'def');
$arr2 = array(0 => 452, 1 => 128);
$arr3 = array(0 => 'foo', 1 => 'bar');

then

array_fill_keys($arr1,$arr2)
returns: [abc] => 452, [def] => 128

array_fill_keys($arr1,0)
returns: [abc] => 0, [def] => 0

array_fill_keys($arr2,$arr3)
returns: [452] => foo, [128] => bar

array_fill_keys($arr3,'BLAH')
returns: [foo] => BLAH, [bar] => BLAH

and array_fill_keys($arr1)
returns: [abc] =>, [def] =>
2008-05-14 13:26:25
http://php5.kiev.ua/manual/ru/function.array-fill-keys.html
Автор:
This function does the same as:
<?php
$array 
array_combine($keys,array_fill(0,count($keys),$value));
?>
2008-06-20 10:28:13
http://php5.kiev.ua/manual/ru/function.array-fill-keys.html
<?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.
2012-05-25 14:53:22
http://php5.kiev.ua/manual/ru/function.array-fill-keys.html
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
    )
)
2013-01-04 13:39:10
http://php5.kiev.ua/manual/ru/function.array-fill-keys.html
$keys = array(1, 2, 3);

// Fill it with value.
$keys = array_fill_keys($keys, 'banana');
print_r($keys); 

// Fill it different value.
$apples = array_fill_keys(array_keys($keys), 'apple');
print_r($apples); 

// Output:
Array ( 
 [1] => banana 
 [2] => banana 
 [3] => banana 
)
Array ( 
 [1] => apple 
 [2] => apple 
 [3] => apple
)
2014-07-21 12:46:15
http://php5.kiev.ua/manual/ru/function.array-fill-keys.html
To remove arbitrary keys from an associative array:

<?php

function nuke_keys($keys$array) {
    return 
array_diff_key($arrayarray_fill_keys($keys0));
}

$array = array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$keys  = array('red''purple');

print_r(nuke_keys($keys$array));
?>

The above snippet will return:

Array
(
    [blue] => 1
    [green] => 3
)
2015-10-23 22:04:15
http://php5.kiev.ua/manual/ru/function.array-fill-keys.html

    Поддержать сайт на родительском проекте КГБ