(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
array_fill — Fill an array with values
Parametersstart_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
Returns the filled array
Errors/ExceptionsThrows a ValueError if count
is out of range.
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.
See also the Arrays section of manual for a detailed explanation of negative keys.
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:
<?php
$a = array_fill(0, 10, array_fill(0, 10, 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');$c = array_fill_keys(range(-2,1),'pear');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
)
11 years ago
Using objects with array_fill may cause unexpected results. Consider the following:
<?php
class Foo {
public $bar = "banana";
}$array = array_fill(0, 2, new Foo());var_dump($array);
$array[0]->bar = "apple";var_dump($array);
?>
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:
<?php
function array_search_all($needle, $haystack)
{foreach ($haystack as $k=>$v) {
if(
$haystack[$k]==$needle){ $array[] = $k;
}
}
return ($array);
}
function
array_getMax($array){ $conteo=array_count_values($array);
if(
count($conteo)==1 ){return $array;
} arsort($array); $maxValue=null;
$keyValue=null;
foreach($array as $key=>$value){
if($maxValue==null){
$maxValue=$value;
$keyValue=$key;
break;
}
} $resultSearch=array_search_all($maxValue, $array);
return
array_fill_keys($resultSearch, $maxValue);
}
$arreglo=array('e1'=>99,'e2'=>'99','e3'=>1,'e4'=>1,'e5'=>98); var_dump(array_getMax($arreglo)); ?>
I hope some one find this usefull
Hayley Watson ¶
7 years ago
Fill missing keys in a (numerically-indexed) array with a default value
<?phpfunction fill_missing_keys($array, $default = null, $atleast = 0)
{
return $array + array_fill(0, max($atleast, max(array_keys($array))), $default);
}?>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3