array_fill
array_fill($zacatek, $pocet, $hodnota)
Vytvoří pole o zadaném počtu prvků, které všechny mají stejnou hodnotu. Klíče jsou čísla počínaje zadaným začátkem.
Parametry
- $zacatek – první klíč.
- $pocet – počet prvků. Nula vytvoří prázdné pole.
- $hodnota – hodnota všech prvků.
Příklady
print_r(array_fill(0, 3, "x")); // Array ( [0] => x [1] => x [2] => x )
// klíče od pětky
print_r(array_fill(5, 2, 0)); // Array ( [5] => 0 [6] => 0 )
// otazníky pro dotaz s IN (…) a předpřipravené hodnoty
$ids = array(3, 8, 15);
echo "SELECT * FROM clanky WHERE id IN (" . implode(",", array_fill(0, count($ids), "?")) . ")"; // SELECT * FROM clanky WHERE id IN (?,?,?)
// nulová počítadla pro 12 měsíců
echo array_sum(array_fill(1, 12, 0)); // 0
// mřížka 2 × 3
echo json_encode(array_fill(0, 2, array_fill(0, 3, 0))); // [[0,0,0],[0,0,0]]
// počet 0 dá prázdné pole
echo count(array_fill(0, 0, "x")); // 0
Na co si dát pozor
- Objekt se nekopíruje. Všechny prvky pak ukazují na tentýž objekt a změna jednoho se projeví ve všech. Samostatné objekty vytvořte v cyklu.
- Záporný počet znamená v PHP 7 varování a false, od PHP 8.0 výjimku ValueError.
- Se záporným začátkem má v PHP 7 a 8.0–8.2 druhý prvek klíč 0, až od PHP 8.3 klíče pokračují po jedné (-3, -2, -1).
- Pole s textovými klíči vytvoří array_fill_keys(), řadu různých čísel range().
Příbuzné funkce:
array_fill_keys()
array_pad()
range()