Search code examples
phpstringrepeat

Build a string by repeating a character N times


I need to add * in an array. This is how I do it in JavaScript.

function makeStarString(grade) {

    var starArray = [];
    var starString = "";
        for (var i = 0; i < grade; i++){
            starArray[i] = "*";
            starString = starString.concat(starArray[i]);
        }
    return starString;
}

The JavaScript code works fine, but I can't make it work with PHP. This is as far as I got with PHP.

function makeStarString($varGrade) {

    $starArray = array ();
    $starString = "";
        for ($i = 0; $i < strlen($varGrade); $i++){

            $starArray($i) = $star;
            $starString = $starString.(starArray(i));
        }   

    return $starString;
}

I get this error "Fatal error: Can't use function return value in write context" because of line $starArray($i) = $star;

The argument I send to the function is an Integer. So the purpose of the function is that if I send a 5 to the function it will return *****

How can I fix my PHP function?


Solution

  • If you really need stars in an array, you don't need to use a loop:

    $starArray = array_fill(0, $varGrade, '*');
    

    and if you need to turn the array into a string:

    $starString = implode('', $starArray);
    

    But if you don't really ever need to use the array of stars, it would be easier to just use str_repeat:

    str_repeat('*', $varGrade);