Search code examples
phparraysfill

PHP - fill array same value


[Solved]

I want create array consist 40 elements (10x values "c", 10x values "d", 10x values "h", 10x values "s"). I try create array:

$znaczki = array_fill(0, $iloscZnaczkow, 'c');
$znaczki = array_fill($iloscZnaczkow, $iloscZnaczkow, 'd');
$znaczki = array_fill((2 * $iloscZnaczkow), $iloscZnaczkow, 'h');
$znaczki = array_fill((3 * $iloscZnaczkow), $iloscZnaczkow, 's');

Var $IloscZnaczkow contains number - 10. Unfortunetlly, later I will use $znaczki and script

$i = 0;
foreach ($serializ as $key => $value) {
    echo '<img src="images/' . $value . $znaczki[$i] . '.gif" />';
    $i++;
}

throw image src="images/11.gif" (it doesn't have $znaczki[$i] everywhere :()


Solution

  • The problem is you keep overwriting the array:

    $znaczki = array_merge(
        array_fill(0, $iloscZnaczkow, 'c'),
        array_fill(0, $iloscZnaczkow, 'd'),
        array_fill(0, $iloscZnaczkow, 'h'),
        array_fill(0, $iloscZnaczkow, 's')
    );
    

    is what you want. You don't really need the index math anymore, as array_merge will maintain the indices for you.