PHP错误-注意:内爆数组时数组到字符串的转换


PHP Error - Notice: Array to string conversion on imploding an array

我正试图编写一个函数,该函数将采用$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"