我试图返回给定的字符串,每删除第三个字母。
这是我到目前为止的代码: -
function removeThirdLetter($sentence){
$output = "";
for ($i = 0;$i < strlen($sentence);$i++){
if($i % 3 != 0){
$output .= $sentence[$i];
}
}
return $output;
}
当我尝试使用它时: -
$str = "Frank Sinatra";
echo removeThirdLetter($str);
它返回: -
rak intr
何时返回: -
FrnkSiata
我如何纠正我的逻辑?
答案 0 :(得分:2)
您的代码不正确。
你可以检查一下它只是运行它
在您的代码中删除每个第一个和第二个字母。
另外你应该知道0%3 == 0
在这种情况下,您可以将其更改为
if($i == 0 || $i % 3 != 0){
答案 1 :(得分:0)
你做得对,但是返回数组而不是字符串; - )
所以将return $output;
更改为return implode('', $output);
,它应该返回一个字符串。
编辑:
因为OP改变了他的问题中的代码,我的答案再也没有意义了......感谢任何方式的downvote,所做的人应该首先看一下问题的编辑历史。
答案 2 :(得分:0)
初始化$output
变量后,您遗漏了分号
另外,当您附加到字符串时,最好使用.=
而不是$output[] =
,否则会尝试将$output
作为数组返回。
此外,$i % 3 == 0
仅附加在第3个字符的位置(从第一个字符开始),而不是输出文本建议您想要的第3个字符。
以下按照您的示例工作:
<?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"
?>