如何用星号替换字符串的第一个和最后3个字符而不使用任何函数?

jom*_*pom 0 php arrays string replace

我想用*符号替换前3个字符和最后3个字符而不使用任何内置函数.

$string = array("johndoee","shawnmarsh","peterparker","johndoee","shawnmarsh","peterparker");
Run Code Online (Sandbox Code Playgroud)

你能指导我吗?有没有办法做到这一点?

Don*_*nic 6

这看起来毫无意义,但可以使用字符串访问和字符修改.

foreach ($strings as &$string) {
    for ($i=0; $i < 3; $i++) {
        $string[$i] = '*';
        $string[-($i+1)] = '*';
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果字符串包含多字节字符,则无法正常工作,因为它将字符串作为字节数组进行访问.

另请注意,这需要PHP 7.1才能使用负索引.如果您没有PHP 7.1,我不知道如何在不使用任何函数的情况下替换最后三个字符.