W php-ie nie ma wymogu podawania wielkości tablicy przy inicjalizacji.
Sprawdź Twój zapis [ on-line ]
$a = [40];
var_dump($a);
echo $a[0];
ale można np. tak
[ on-line ]
$a = array_fill(1, 40, 0);
print_r($a);
[ on-line ]
$a = [ 0 ];
$a = array_pad($a, 40, 0);
print_r($a);
a co do zapełnienia 40 elementowej tablicy liczbami losowymi z przedziału
1-30 można np. tak
[ on-line ]
$a = array_map(function() { return rand(1, 30); }, range(1, 40));
print_r($a);
propozycja poprawienia [ on-line ]
for ($i=1; $i<=40; $i++) {
$a[$i] = rand(1,30);
echo "{$a[$i]} ";
}
echo array_sum($a);
[ array_fill ] [ array_pad ] [ array_map ]