array_fill

(PHP 4 >= 4.2.0, PHP 5)

array_fillFill an array with values

Description

array array_fill ( int $start_index , int $num , mixed $value )

Fills an array with num entries of the value of the value parameter, keys starting at the start_index parameter.

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 (see example).

num

Number of elements to insert. Must be greater than zero.

value

Value to use for filling

Return Values

Returns the filled array

Errors/Exceptions

Throws a E_WARNING if num is less than one.

Examples

Example #1 array_fill() example

<?php
$a 
array_fill(56'banana');
$b array_fill(-24'pear');
print_r($a);
print_r($b);
?>

The above example will output:

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)
Array
(
    [-2] => pear
    [0] => pear
    [1] => pear
    [2] => pear
)

Notes

See also the Arrays section of manual for a detailed explanation of negative keys.

See Also

Коментарии

Автор:
array_fill() cannot be used to setup only missing keys in an array. This  may be necessary for example before using implode()  on a sparse filled array.
The solution is to use this function:

<?php
function array_setkeys(&$array$fill NULL) {
 
$indexmax = -1;
  for (
end($array); $key key($array); prev($array)) {
    if (
$key $indexmax)
     
$indexmax $key;
  }
  for (
$i 0$i <= $indexmax$i++) {
    if (!isset(
$array[$i]))
     
$array[$i] = $fill;
  }
 
ksort($array);
}
?>

This is usefull in some situations where you don't know which key index was filled and you want to preserve the association between a positioned field in an imploded array and the key index when exploding it.
2002-08-25 16:59:46
http://php5.kiev.ua/manual/ru/function.array-fill.html
This is what I recently did to quickly create a two dimensional array (10x10), initialized to 0:

<?php
  $a 
array_fill(010array_fill(0100));
?>

This should work for as many dimensions as you want, each time passing to array_fill() (as the 3rd argument) another array_fill() function.
2004-08-11 13:32:39
http://php5.kiev.ua/manual/ru/function.array-fill.html
I made this function named "array_getMax" that returns te maximum value and index, from array:

<?php
//using array_search_all by helenadeus at gmail dot com

function array_search_all($needle$haystack)
{
#array_search_match($needle, $haystack) returns all the keys of the values that match $needle in $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)==){//returns full array when all values are the same.
       
return  $array;       
    }
       
   
arsort($array);
   
   
//$antValue=null;
   
$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);
   
   
}

//example 
 
$arreglo=array('e1'=>99,'e2'=>'99','e3'=>1,'e4'=>1,'e5'=>98);
   
   
var_dump(array_getMax($arreglo));

//output
/*
array(2) {
  ["e1"]=>
  int(99)
  ["e2"]=>
  int(99)
}
*/
?>

I hope some one find this usefull
2012-02-24 20:04:55
http://php5.kiev.ua/manual/ru/function.array-fill.html
Using objects with array_fill may cause unexpected results. Consider the following:

<?php
class Foo {
   public 
$bar "banana";
}

//fill an array with objects
$array array_fill(02, new Foo());

var_dump($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";

var_dump($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.
2013-11-10 05:07:07
http://php5.kiev.ua/manual/ru/function.array-fill.html
If you need negative indices:
<?php
$b 
array_fill(-24'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
)
2014-06-16 13:00:46
http://php5.kiev.ua/manual/ru/function.array-fill.html
Автор:
Fill missing keys in a (numerically-indexed) array with a default value

<?php

function fill_missing_keys($array$default null$atleast 0)
{
    return 
$array array_fill(0max($atleastmax(array_keys($array))), $default);
}

?>
2018-01-14 01:57:38
http://php5.kiev.ua/manual/ru/function.array-fill.html
As of PHP 8.0 the example code

<?php
$b 
array_fill(-24'pear');
print_r($b);
?>

now returns

Array
(
    [-2] => pear
    [-1] => pear
    [0] => pear
    [1] => pear
)

See https://wiki.php.net/rfc/negative_array_index and https://github.com/php/php-src/pull/3772
2021-06-30 07:28:39
http://php5.kiev.ua/manual/ru/function.array-fill.html

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