PHP: Hypertext Preprocessor (original) (raw)
array_fill
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
array_fill — Fill an array with values
Description
Parameters
start_index
The first index of the returned array.
If start_index
is negative, the first index of the returned array will be start_index
and the following indices will start from zero prior to PHP 8.0.0; as of PHP 8.0.0, negative keys are incremented normally (see example).
count
Number of elements to insert. Must be greater than or equal to zero, and less than or equal to 2147483647
.
value
Value to use for filling
Return Values
Returns the filled array
Errors/Exceptions
Throws a ValueError if count
is out of range.
Changelog
Version | Description |
---|---|
8.0.0 | array_fill() now throws a ValueError if count is out of range; previously E_WARNING was raised, and the function returned false. |
Examples
Example #1 array_fill() example
<?php $a = array_fill(5, 6, 'banana'); print_r($a); ?>
The above example will output:
Array ( [5] => banana [6] => banana [7] => banana [8] => banana [9] => banana [10] => banana )
Example #2 array_fill() example with a negative start index
<?php $a = array_fill(-2, 4, 'pear'); print_r($a); ?>
Output of the above example in PHP 8:
Array ( [-2] => pear [-1] => pear [0] => pear [1] => pear )
Output of the above example in PHP 7:
Array ( [-2] => pear [0] => pear [1] => pear [2] => pear )
Note that index -1
is not present prior to PHP 8.0.0.
Notes
See also the Arrays section of manual for a detailed explanation of negative keys.
See Also
- array_fill_keys() - Fill an array with values, specifying keys
- str_repeat() - Repeat a string
- range() - Create an array containing a range of elements
Found A Problem?
csst0266 at cs dot uoi dot gr ¶
20 years ago
`This is what I recently did to quickly create a two dimensional array (10x10), initialized to 0:
This should work for as many dimensions as you want, each time passing to array_fill() (as the 3rd argument) another array_fill() function.
`
anatoliy at ukhvanovy dot name ¶
10 years ago
If you need negative indices: <?php $b = array_fill(-2, 4, 'pear');//this is not what we want $c = array_fill_keys(range(-2,1),'pear');//these are negative indices print_r($b); print_r($c); ?> Here is result of the code above: Array ( [-2] => pear [0] => pear [1] => pear [2] => pear ) Array ( [-2] => pear [-1] => pear [0] => pear [1] => pear )
mchljnk at NOSPAM dot gmail dot com ¶
11 years ago
`Using objects with array_fill may cause unexpected results. Consider the following:
array=arrayfill(0,2,newFoo());vardump(array = array_fill(0, 2, new Foo());var_dump(array=arrayfill(0,2,newFoo());vardump(array); /* array(2) { [0]=> object(Foo)#1 (1) { ["bar"]=> string(6) "banana" } [1]=> object(Foo)#1 (1) { ["bar"]=> string(6) "banana" } } */ //now we change the attribute of the object stored in index 0 //this actually changes the attribute for EACH object in the ENTIRE array array[0]−>bar="apple";vardump(array[0]->bar = "apple";var_dump(array[0]−>bar="apple";vardump(array); /* array(2) { [0]=> object(Foo)#1 (1) { ["bar"]=> string(5) "apple" } [1]=> object(Foo)#1 (1) { ["bar"]=> string(5) "apple" } } */ ?>Objects are filled in the array BY REFERENCE. They are not copied for each element in the array.
`
miguelxpain at gmail dot com ¶
13 years ago
`I made this function named "array_getMax" that returns te maximum value and index, from array:
haystack)returnsallthekeysofthevaluesthatmatchhaystack) returns all the keys of the values that match haystack)returnsallthekeysofthevaluesthatmatchneedle in haystackforeach(haystackforeach (haystackforeach(haystack as k=>k=>k=>v) { if( haystack[haystack[haystack[k]==$needle){$array[] = $k; } } return ($array); } function array_getMax($array){$conteo=array_count_values($array); if( count($conteo)==1 ){//returns full array when all values are the same. return $array; }arsort($array);//$antValue=null; $maxValue=null; $keyValue=null; foreach($array as key=>key=>key=>value){ if($maxValue==null){ maxValue=maxValue=maxValue=value; keyValue=keyValue=keyValue=key; break; } }$resultSearch=array_search_all($maxValue, $array); return array_fill_keys($resultSearch, $maxValue); } //example arreglo=array(′e1′=>99,′e2′=>′99′,′e3′=>1,′e4′=>1,′e5′=>98);vardump(arraygetMax(arreglo=array('e1'=>99,'e2'=>'99','e3'=>1,'e4'=>1,'e5'=>98);var_dump(array_getMax(arreglo=array(′e1′=>99,′e2′=>′99′,′e3′=>1,′e4′=>1,′e5′=>98);vardump(arraygetMax(arreglo));//output /* array(2) { ["e1"]=> int(99) ["e2"]=> int(99) } */ ?>I hope some one find this usefull
`
7 years ago
`Fill missing keys in a (numerically-indexed) array with a default value
default=null,default = null, default=null,atleast = 0) { return array+arrayfill(0,max(array + array_fill(0, max(array+arrayfill(0,max(atleast, max(array_keys($array))), $default); }?>`