Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何修复字符串偏移?_Php - Fatal编程技术网

Php 如何修复字符串偏移?

Php 如何修复字符串偏移?,php,Php,注意:未初始化的字符串偏移量:4/67 for($i = 0; $i < strlen($name); $i++) if($name[$i] == $name[($i+1)] && $name[$i] == $name[($i+2)]) for($i=0;$i

注意:未初始化的字符串偏移量:4/67

for($i = 0; $i < strlen($name); $i++)
if($name[$i] == $name[($i+1)] && $name[$i] == $name[($i+2)])
for($i=0;$i
注意:未初始化的字符串偏移量:-1/73

for($i = 0; $i < strlen($name); $i++)
if($name[$i-1] == ' ' && $name[$i+1] == ' ')   
for($i=0;$i
这些是检查名称是否正确的函数。
第一个函数是用3个相同的字母逐个屏蔽名称,例如“Maaark”。
第二种是用于像“MARK”这样的分块格式


请帮我解决这个问题:D

只需更改两个for循环,如下所示

      for($i = 0; $i < (strlen($name)-2); $i++){
          if($name[$i] == $name[($i+1)] && $name[$i] == $name[($i+2)]){
             echo "first";
          }
       }
for($i=0;$i<(strlen($name)-2);$i++){
如果($name[$i]==$name[($i+1)]&&$name[$i]==$name[($i+2)]){
呼应“第一”;
}
}

for($i=1;$i<(strlen($name)-1);$i++){
如果($name[$i-1]=''&&$name[$i+1]=''){
呼应“第二”;
}
}

Dude。。。您正在执行的是
$i=0然后检查
if($name[$i-1]
。这是检查字符串的位置
-1
,该位置将永远不存在,因为第一个字符串位置将始终为0。只需查看索引,在两个
循环中,您允许它们处理不存在的情况,只需修复您的算法它会给出一个错误,因为如果字符串长度为4,则在2次后输入进入循环$name[($i+2)]给出错误。它不会初始化。数组中不存在与-1相同的索引。第一个索引工作得很理想,但它显示每次通信大约3个相同的字母,即使错误应该与字母之间的空格有关。如果您不想完全理解,我可以向您显示完整的代码。所以您是说问题是wi现在是第二圈了吗?
    for($i = 1; $i < (strlen($name)-1); $i++){
       if($name[$i-1] == ' ' && $name[$i+1] == ' '){  
          echo "second";
       }
    }