Notatki PHP

prywatne zapiski na kamieniu

array_fill - wypełni tablicę podaną wartością

array array_fill (int $indeks_początkowy, int $ilosc, mixed $wartość)

array_fill() wypełni tablicę wartością $wartość (łańcuch lub liczba), począwszy od indeksu $indeks_początkowy przez $ilosc kolejnych elementów tablicy. Od PHP 5.6 $ilosc może przyjmować wartość zero - wcześniejsze wersje musiały mieć tę wartość >0.

 
$tablica2 = array_fill(0, 11, 'żółty');
print_r($tablica2);
echo '<br>';
 
Array ( [0] => żółty [1] => żółty [2] => żółty [3] => żółty [4] => żółty [5] => żółty [6] => żółty [7] => żółty [8] => żółty [9] => żółty [10] => żółty ) 

 

Gdyby nie było array_fill, podobne rezultaty wypełniania tablicy trzeba byłoby robić "na piechotę":

 
 
function array_pattern($input_array, $repeat_count) {
    $output_array=array();
    for($count = 1; $count < $repeat_count; $count++) {
        $output_array = array_merge($output_array, $input_array);
    }
    return $output_array;
}
 
$tablica3 = array ("żółty");
 
$c = array_pattern ($tablica3, 12); 
print_r($c);
 
Array ( [0] => żółty [1] => żółty [2] => żółty [3] => żółty [4] => żółty [5] => żółty [6] => żółty [7] => żółty [8] => żółty [9] => żółty [10] => żółty ) 

Przykład na wypełnienie tablicy od szóstego indeksu:

 
$tablica2 = array_fill(6, 11, 'żółty');
print_r($tablica2);
echo '<br>';
 
Array ( [6] => żółty [7] => żółty [8] => żółty [9] => żółty [10] => żółty [11] => żółty [12] => żółty [13] => żółty [14] => żółty [15] => żółty [16] => żółty ) 

 

 
$b = array_fill(-2, 4, 'jabłka');
print_r($b);
 
Array ( [-2] => jabłka [0] => jabłka [1] => jabłka [2] => jabłka ) 

Jak widać, mamy bałagan w indeksach.

 
$c = array_fill_keys(range(-2,1),'jabłka'); //these are negative indices
 
Array ( [-2] => jabłka [-1] => jabłka [0] => jabłka [1] => jabłka ) 

 

Utworzenie tablicy - matrycy 10 na 10:

 
 
$a = array_fill(0, 10, array_fill(0, 10, 0));
print_r($a);
 
Array ( [0] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) [1] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) [2] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) [3] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) [4] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) [5] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) [6] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) [7] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) [8] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) [9] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) )