0

これは簡単な質問です。

次のような単語のリストがあります。

word
word
    one
    two
    three
    four
    five
    .
    ....X100
word
word

単語 (1、2、3、4、5) を同じ順序で正確に 100 回繰り返します。単語 (単語) は繰り返されず、無視する必要があります。

まったく同じ順序で (one、two、three、four、five) のリストを取得したいと考えています。これをphpでどのように行うことができますか。私が今まで試したのは、単語の出現回数を数えることだけで、単語の順序を尊重しませんでした。

アップデート

皆さん回答ありがとうございます!

ここに私のコードがありますが、まだ多くのエラーがあります

<?php
$str = 'word
word
word2
word3
one
two
three
four
one
two
three
four
one
two
three
four
one
two
three
four
one
two
three
four
one
two
three
four
yes
no 
do';
function repeated($str)
{
    $str=trim($str);  
    $str=ereg_replace('[[:space:]]+', ' ',$str);  
    $words=explode(' ',$str);  
    $lastWord = '';
    foreach($words as $w)  
    {  
        $wordstats[($w)]++;  

        if($lastWord!=''){
            $wordstats[$lastWord.' '.$w]++;
        }
        $lastWord = $w;
    }  
    foreach($wordstats as $k=>$v)  
    {  
        if($v>=2)  
        {  
            print "$k"." , ";  
        }  
    }  
}

print repeated($str);

?>

基本的に私が望むのは、その中に単語 (one、two、three、four) が何度も繰り返される $str テキストを php に与え、パターン (one、two、three、four) を決定することです。

4

2 に答える 2

0

さて、これをヒントとして考えてください:

カウント変数と配列を使用できます。必要な単語の配列を作成します。

$SearchMe = array("One", "Two", "Three", "Four");
$Index = 0;

次に、必要なリストを繰り返し処理します。ただし、「One」、「Two」、「Three」をチェックするのではなく、次の項目をチェックしてください。

$SearchMe[$Index];

毎回、$SearchMe[$Index] を検索し、配列の最後に到達するまで 1 つずつ繰り返します。そこに着いたら、シーケンスを見つけたので、別のカウンターをインクリメントします。シーケンスの最後で、または不一致を見つけた場合は、忘れずに $Index を 0 にリセットしてください。

それはうまくいくはずです。

于 2012-08-13T14:37:01.683 に答える
0

更新 これはあなたが探している答えではないと思います。あなたの質問をもう一度読んだ後、あなたが実際に何を求めているのかよくわかりません。そのため、より正確な情報を提供していただけるようお願いいたします。

--

このようなものを探していると思います。あなたのリストは配列ですか?もしそうなら:

    <?php      
    foreach ($list as $key => $value ){
      if (isarray($value)){
        $ListINeed[] = $value;
      }
    }
    ?>

最初の投稿で投稿した配列を取得すると、次のように返されます。

    $ListINeed[1] = array(
      [0] => one
      [1] => two
      [2] => three
      [3] => four
      [4] => five
      [x] => .
      [100] => ....X100
    )

ListINeed が 1 回しか存在しないことが確実な場合は、if ステートメントの最初のコードで、$ListINeed の後の 2 つの角かっこ ([]) を削除します。それからあなたは得るでしょう

    $ListINeed = array(
      [0] => one
      [1] => two
      [2] => three
      [3] => four
      [4] => five
      [x] => .
      [100] => ....X100
    )
于 2012-08-13T14:39:19.553 に答える