2016-01-13 27 views
0

我想在其他字符串中找到一个字符串。我不允许使用任何str函数。因此,我写了这段代码!但它显示了第18行Undefined offset: 14 in C:\nn\htdocs\myfiles\PHPCode.php。 我不知道这条线有什么问题。我geting注意:未定义偏移量:14在C: nn htdocs myfiles PHPCode.php在线18

if ($arr1[$j] == $arr2[$index]) 

完整的代码

<?php 
     $stringR = strtolower($_POST['name']); 
     $first = strtolower($_POST['First']); 
     $k = 0; 
     $index =0; 
     $firstfeq =0; 
     if (preg_match('/[0-9]/', $stringR)){ 
      echo "ERROR:The String has numbers"."<br>"; 
      exit; 
     } 
     if ((strlen($first) > 8)){ 
      echo "ERROR: Number of char in each input should be less  than 8 char"."<br>"; 
      exit; 
     } 
     $arr1 = str_split($stringR); 
     $arr2 = str_split($first); 
     for ($j = 0 ; $j <= sizeof($arr1) ; $j++) { 
      if ($arr1[$j] == $arr2[$index]){ 
       if ($index <= (sizeof ($arr2))){ 
        $k = 1; 
        $index++; 
       }else 
       { 
        $index = 0; 
        $k =0; 
       } 
       if (($index == sizeof($arr2)) && ($k == 1)) { 
        $firstfeq++; 
        $index =0; 
        $k = 0; 
       } 

      } 

     } 
     echo "$first appears $firstfeq"."<br>"; 

?> 
+0

'$ arr2'数组中不存在'$ index' 14 ...错误说明了这一切。 – Darren

回答

1

更改此:

for ($j = 0 ; $j <= sizeof($arr1) ; $j++) { 

这样:

for ($j = 0 ; $j < sizeof($arr1) ; $j++) { 

我下注$ j被持续1个指数的总限额以上。

1

因为数组索引为0,应更换此行

for ($j = 0 ; $j <= sizeof($arr1) ; $j++) { 

for ($j = 0 ; $j < sizeof($arr1) ; $j++) { 

,同样

if ($index <= (sizeof ($arr2))){ 

if ($index < (sizeof ($arr2))){ 
相关问题