2013-06-29 52 views
0

對於學校項目,我需要在長字符串中查找字符串「AAAAAA」的位置。我需要使用for循環。到目前爲止,我想出了以下代碼:使用for循環查找字符串位置

<?php 
    $string1 = "TATAGTTTCCTCTCTATAT"; 

    $string2 = str_repeat("AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA", 6); 
    $count = strlen($string1.=$string2); 

    for($i = 0; $i < $count; $i++){ 
    $string_to_find = $count{$i}; 
    print(strpos($string_to_find, 'AAAAAA')); 
    } 
?> 

我無法讓它工作。我究竟做錯了什麼?

+0

申報$ string_to_find =「」;在for循環和for循環之前使用$ string_to_find。= $ string1 {$ i};而不是$ string_to_find = $ count {$ i};如果你可以使用strpos()至少有一次,我沒有看到任何for循環的必要性。 與SO不是做你的功課。 – Fallen

+0

'$ string_to_find = $ count {$ i};'或'$ string_to_find = $ string1 {$ i};'? – bystwn22

+0

我懷疑你被允許用戶strpos,因爲會爲你做所有的工作,for循環將是不必要的。我們不會在這裏爲你做功課。這是btw。不管怎樣,因爲我們不知道該使用什麼,這正是您可以意識到這一點的地方,因爲您不使用任何可用資源的解決方案不適合除您以外的任何人。 – luk2302

回答

0

如果你使用strpos(),你不需要使用for循環。沒有那個,你可以得到結果。

<?php 
$string1 = "TATAGTTTCCTCTCTATAT"; 
$string_to_find=""; 
$string2 = str_repeat("AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA", 6); 
$count = strlen($string1.=$string2); 

for($i = 0; $i < $count; $i++){ 
$string_to_find.=$string1{$i}; 
print(strpos($string_to_find, 'AAAAAA')); 
} 
?> 

這裏是您可以嘗試的代碼。

+0

工作,但不是正確的輸出。無論如何感謝 – user2534403

+0

如果答案有用,請回答答案。 – 2013-06-29 11:23:48

0

我想配一for/foreach循環做實在是太差了,
反正這裏是你的代碼,改變你的代碼一點點,希望工程

<?php 
    $string1 = "TATAGTTTCCTCTCTATAT"; 
    $string2 = str_repeat("AAAGCCTCAAATCTCTCTAGTAAAAAAGCCTCAAATCTCTCTAGTAAA", 6); 

    $count = strlen($string1 .= $string2); 
    $temp = null; 

    foreach(str_split($string1) as $char) { 
    $temp .= $char; 
    if (($pos = strpos($temp, "AAAAAA")) !== false) { 
     print($pos." "); 
     $temp = null; 
    } 
    } 
?> 
+0

它的工作原理,謝謝! – user2534403