2013-06-29 89 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