Мексиканская волна

как сделать волну такого образца:

["Hello", "hEllo", "heLlo", "helLo", "hellO"]

Код есть, но выдает немного не верный результат:

function wave($people){
    $array = [];
    $i=0;
        while( $i < strlen($people)){
            
            $people[$i] = strtoupper($people[$i]);
            $array[] = $people; 
            $i++;
            
        }
    var_dump($array);
}  
echo wave('hello');

Ответы (2 шт):

Автор решения: Эникейщик

Допустим так

function wave($people){
$array = [];
$i=0;
    while( $i < strlen($people)){
        $temp = $people;
        $temp[$i] = strtoupper($people[$i]);
        $array[] = $temp; 
        $i++;
    }
var_dump($array);

}
echo wave('hello');

Не нужно затирать каждый раз предыдущее значение.

→ Ссылка
Автор решения: Kirill
function wave($sting){
    for ($i = 0; $i < strlen($sting); ++$i) {
        if ($sting[$i] == ' ') continue;
        $result[] = substr_replace($sting, strtoupper($sting[$i]), $i, 1);
    }
    return $result;
}

print_r(wave('hello world'));
→ Ссылка