PHP Doku:: Befüllt ein Array mit Werten mit den übergebenen Schlüsseln - function.array-fill-keys.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzVariablen- und typbezogene ErweiterungenArraysArray Funktionenarray_fill_keys

Ein Service von Reinhard Neidl - Webprogrammierung.

Array Funktionen

<<array_diff

array_fill>>

array_fill_keys

(PHP 5 >= 5.2.0)

array_fill_keysBefüllt ein Array mit Werten mit den übergebenen Schlüsseln

Beschreibung

array array_fill_keys ( array $keys , mixed $value )

Befüllt ein Array mit dem Wert, der im Parameter value übergeben wurde, und verwendet dabei die Werte des Arrays keys als Schlüssel.

Parameter-Liste

keys

Ein Array mit den Werten, die als Schlüssel verwendet werden. Für Schlüssel ungültige Werte werden in einen String konvertiert.

value

Der Wert, der zum Befüllen des Arrays verwendet wird

Rückgabewerte

Gibt das befüllte Array zurück

Beispiele

Beispiel #1 array_fill_keys()-Beispiel

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

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

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

Siehe auch

  • array_fill() - Füllt ein Array mit Werten
  • array_combine() - Erzeugt ein Array, indem es ein Array für die Schlüsel und ein anderes für die Werte verwendet


4 BenutzerBeiträge:
- Beiträge aktualisieren...
matrebatre
20.06.2008 16:28
This function does the same as:
<?php
$array
= array_combine($keys,array_fill(0,count($keys),$value));
?>
phydeaux
14.05.2008 19:26
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] =>
Scratchy
2.05.2008 23:18
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
bananasims at hotmail dot com
19.12.2006 14:03
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;
}



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)