在php中每隔3个字符删除一次

在php中每隔3个字符删除一次,php,Php,我试图返回给定的字符串,每删除三个字母 这是我目前掌握的代码:- function removeThirdLetter($sentence){ $output = ""; for ($i = 0;$i < strlen($sentence);$i++){ if($i % 3 != 0){ $output .= $sentence[$i]; } } return $output; } 它返回:- rak

我试图返回给定的字符串,每删除三个字母

这是我目前掌握的代码:-

function removeThirdLetter($sentence){
    $output = "";
    for ($i = 0;$i < strlen($sentence);$i++){
        if($i % 3 != 0){
            $output .= $sentence[$i];
        }
    }
    return $output;
}
它返回:-

rak intr

应在何时返回:-

弗恩克西亚塔


如何更正逻辑?

您做得不错,但返回的是数组而不是字符串-

因此,改变返回$output;返回内爆$output;它应该返回一个字符串

编辑:
因为OP改变了他问题中的密码,我的答案不再有意义了。。。感谢您的否决票,否决的人应该首先查看问题的编辑历史。

您的代码不正确

你可以检查这个,只要运行它

在代码中,删除每个第一个和第二个字母

您还应该知道0%3==0

在这种情况下,您可以将其更改为

if($i == 0 || $i % 3 != 0){

初始化$output变量后,您省略了分号。 另外,当您将附加到字符串时,最好使用。=而不是$output[]=否则它会尝试将$output作为数组返回。 另外,$i%3==0仅在以第一个字符开头的第三个字符处追加,而不是在输出文本建议您使用的第三个字符处追加

以下内容与您的示例相同:

<?php
function removeThirdLetter($sentence){
    $output = "";
    for ($i = 0; $i < strlen($sentence); $i++){
        if($i % 3 != 2){
            $output .= $sentence[$i];
        }
    }
    return $output;
}

$str = "Frank Sinatra";
echo removeThirdLetter($str); // should return "FrnkSiata"
?>

知道如何判断它是否正确吗?试试看,你测试过了吗?它是否按预期工作?还是不呢?大概应该是i=3美元$i<?php function removeThirdLetter($sentence){ $output = ""; for ($i = 0; $i < strlen($sentence); $i++){ if($i % 3 != 2){ $output .= $sentence[$i]; } } return $output; } $str = "Frank Sinatra"; echo removeThirdLetter($str); // should return "FrnkSiata" ?>