2011-12-21 19 views
0

私は2つのテキストで類似のフレーズを見つけるPHPでスクリプトをプログラムしようとしています。私はこれに尋ねましたQuestionphp類似のフレーズを見つける

1. the cat is on the roof 
    2. a man is on the stage 

    A1 = [the, cat, is, on, the, roof] 
    A2 = [a, man, is, on, the, stage] 

    [the]: no match 
    [cat]: no match 
    [is]: match 
    [is, on]: match 
    [is, on, the]: match 
    [is, on, the, roof]: no match 
    [on]: match 
    [on, the]: match 
    [on, the, roof]: no match 
    [the]: match 
    [the, roof]: no match 
    [roof]: no match 
    -end- 

私のコードは以下の通りです。

<?php 

echo match(explode(' ',$text1), explode(' ',$text2)); 

function match($old, $new){ 
$arr; 
    foreach($old as $key=>$oldword) { 
     foreach($new as $key2=>$newword) { 

      if($old[$key] == $new[$key2]) { 
       array_push($arr,$old[$key]); 
       echo '<span style="color:red;">'.$old[$key].' </span>'; 
       } 
       else { 
        echo $old[$key].' '; 
       } 
     } 
    } 
} 

言葉が繰り返され、なぜ私は、次の出力

enter image description here

を取得しますか?

答えて

1

あなたの現在の質問の答えは、ネストされたfor-loopを使用しているからです。他の質問については、答えは実際にはかなり正しいです:)。

1

古い配列のループの繰り返しごとに、新しい配列のループがforeachで実行されているからです。