2016-04-12 31 views
0

Uyarı: başlatılmamış dize farkı: 4 UyarıDize ofseti nasıl düzeltilir?

for($i = 0; $i < strlen($name); $i++) 
if($name[$i] == $name[($i+1)] && $name[$i] == $name[($i+2)]) 

67 içinde: başlatılmamış dize farkı: -1

for($i = 0; $i < strlen($name); $i++) 
if($name[$i-1] == ' ' && $name[$i+1] == ' ') 

73 bulunan bu ismin corectness kontrol işlevleridir.
Birincisi, 3 harfle aynı harfleri teker teker, örneğin "Maaark".
Ve ikincisi tis "M a a r k" gibi formatı engelleme içindir.

beni bu düzeltmek yardımcı olun: döngüler gibi için

+0

Dude izler ... sen $ i = 0 'yapıyoruz ; 'sonra kontrol ederse eğer ($ name [$ i-1]'. Bu, ilk dize pozisyonu her zaman 0 olacağından beri asla olmayacak olan dizenin -1 değerini kontrol ediyor. – Phiter

+0

Sadece endekslerinize bakın , her iki '' '' döngülerinde, onları adreslemelerine izin verirsiniz ** n excel süreçlerinde ** Sadece algoritmalarınızı düzeltin – RiggsFolly

+0

evet, eğer dize uzunluğunuz 4 ise ve 2 kez döngü içine girdiğinizde $ isim [($ i + 2)] hata verir. Başlamadı. dizinizde -1 dizini için aynı değildir. – WisdmLabs

cevap

0

Sadece iki değiştirmek D

 for($i = 0; $i < (strlen($name)-2); $i++){ 
      if($name[$i] == $name[($i+1)] && $name[$i] == $name[($i+2)]){ 
      echo "first"; 
      } 
     } 

ve

for($i = 1; $i < (strlen($name)-1); $i++){ 
     if($name[$i-1] == ' ' && $name[$i+1] == ' '){ 
      echo "second"; 
     } 
    } 
+0

İlk önce ideal olarak çalışır, ancak hata, harfler arasındaki boşluklarda olsa bile, her defasında 3 aynı harfin tek tek iletilmesini gösterir. Size tam kodu gösterebilirim – Jakub

+0

tam olarak anlamadım. Yani sorun şu an ikinci döngüde mi? –

İlgili konular