使用for循环查找字符串位置

时间:2013-06-29 10:21:26

标签: php for-loop strpos

对于学校项目,我需要在长字符串中找到字符串“AAAAAA”的位置。我需要使用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'));
  }
?>

我无法让它发挥作用。我做错了什么?

2 个答案:

答案 0 :(得分: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'));
 }
?>

这是您可以尝试的代码。

答案 1 :(得分: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;
    }
  }
?>