我正试图编写一个函数,该函数将采用$s
参数并将其拆分为字母,从而创建$s
字母的数组。
$n
是字母计数器,因此它将循环最多10个字母并返回EricEricEr
。
第一个问题:我知道我在数组内创建一个数组,因为我想接收内部数组的字符串,我需要内爆它两次。
第二个问题:我无法打印前10个字母,只有单词10次(即EricEricEricEric…10倍)。
预期结果:我希望for
循环i
遍历字母,当到达$n
并打印所有字母时没有胶水,只是连续地,接收这个特定示例函数参数的结果为:EricEricEr
.
function letterCounter($s, $n){
for ($i = 0; $i<=$n; $i++){
$split [] = str_split($s);
}
$imploded = implode($split);
return $imploded;
}
$result = letterCounter('Eric', 10);
echo '<pre>';
print_r($result);
echo '</pre>';
这样就可以了,但是你可以改进代码
function letterCounter($s, $n)
{
$split = str_split($s); //array of splitted $s into letters
$count=0;
$str = "";
while($count<$n){
foreach($split as $char){
if($count>=$n)
break;
$str.= $char;
$count++;
}
}
return $str;
}
$result = letterCounter('Eric', 10);
echo '<pre>';
print_r($result);
echo '</pre>';
我不确定我是否明白你的意思,但是PHP有你需要的一切:
$string = "Eric";
str_pad($string, 10, $string);
"EricEricEr"