function PigLatin($sentence)
{
$vowelSufix = "way";
$consonantSufix = "ay";
$vowelArray = array('a','e','o','u','i');
$finalword;
$wordArray = explode(' ', $sentence);
foreach ($wordArray as $value)
{
$word = $value;
$consonant = $word[0];
if (in_array($word[0], $vowelArray))
{
$finalword = substr($word, 1). $word[0]. $vowelSufix. "<br />";
}
else
{
for ($i=1; $i <strlen($word) ; $i++)
{
if (in_array($word[$i], $vowelArray))
{
$finalword = substr($word, $i). $consonant. $consonantSufix . "<br />";
}
else
{
$consonant .= $word[$i];
}
}
}
if ($finalword[0] == $finalword[1])
{
return substr($finalword, 1);
}
$finalword .= $finalword;
}
var_dump($wordArray);
}
所以基本上它给了我跟随错误“未初始化的字符串偏移量”。我知道这个错误来了,因为我使用的数组不是纯粹的,但我被卡住了,有人可以帮助我吗?
答案 0 :(得分:0)
您的脚本不处理$word
为空的情况,如果句子中的行中有两个空格,则会发生这种情况。如果$word
为空字符串,$word[0]
将收到您报告的错误,因为字符串中没有此类字符。
将循环更改为:
foreach ($wordArray as $word)
{
if ($word === '') {
continue;
}
这将跳过空单词。另请注意,您不需要单独的变量$value
和$word
。