-3

コードが機能しない理由がわかりません。文字列を、分解されたデータの配列と比較し、解析中に比較したいと考えています。何らかの理由で、最初の一致は得られますが、残りは一致しません。ここで何か助けていただければ幸いです!私は何度も何度も見ましたが、答えは見つかりませんでした!

どの配列要素がどの文字列に一致するかを知ることで、そのデータを適切に保存し、計算を実行できます。これの目的は、特定の形式で入力された生の調査データから一連の座標を作成することです。

これで十分に説明できたと思います。私が言ったように、私は答えを探しましたが、私がしていることに適した答えを見つけることができません.

助けてくれてありがとう、ありがとう!

in_array を使用してみましたが、成功しませんでした。strcmp は成功しませんでした。

ショーン

これが私のコードです:

   <?php
   $textArea = explode("\r", $_POST['textArea']);
   $i = 0;
   $j = 0;

   foreach ($textArea as $textRows) {
       $j = 0;
       $textRow = explode(",", $textRows);
       foreach ($textRow as $textItem[$i][$j]) {
           if ($j == 0) {
               if (("TR") == ($textItem[$i][$j])) {
                   echo("Traverse <br>");
               }
               if (("CP") == ($textItem[$i][$j])) {
                   echo("Control <br>");
               }
               echo("i = $i, j = $j, textItem = " . $textItem[$i][$j] . "<br>");
           }
           $j++;
        }
       $i++;
   }
   echo($textItem[9][0] . "<br>");
   echo($textItem[0][0] . "<br>");
   echo($textItem[0][3] . "<br>");
   echo($textItem[5][6] . "<br>");
   $_SESSION['textNum'] = $textItem;
   ?>

私のテストデータ:

CP,100,576.7873,6065.6221,12.542,CP
CP,101,6966.315,2226.4001,9.897,CP
TR,100,1.735,101,1.576,1,1.735,345.9961198,90.04410841,2964.26393,PROP
TR,100,1.735,101,1.576,2,1.735,340.6589997,90.04021446,3080.322203,PROP
TR,100,1.735,101,1.576,3,1.735,351.8639518,90.02168219,5448.892284,PROP
TR,100,1.735,101,1.576,4,1.735,0,90.02469919,5316.851375,PROP
TR,100,1.735,101,1.576,5,1.735,19.26823792,90.02318399,5441.916153,PROP
TR,100,1.735,101,1.576,6,1.735,22.77896709,89.9901807,6138.435694,PROP
TR,100,1.735,101,1.576,7,1.735,5.354105397,89.98465774,7551.171809,PROP
TR,100,1.735,101,1.576,8,1.735,0,90.00156466,6884.324702,PROP
TR,100,1.735,101,1.576,9,1.735,313.0231053,90.03002234,5137.515594,PROP
TR,100,1.735,101,1.576,10,1.735,308.3168227,90.10108781,2655.989628,PROP
TR,100,1.735,101,1.576,11,1.735,340.0064751,11.68927863,757.4152317,PROP
TR,100,1.735,101,1.576,12,1.735,4.661110613,173.921569,776.3980052,PROP
TR,100,1.735,101,1.576,13,1.735,89.44844992,89.87552303,484.2277925,PROP
TR,100,1.735,101,1.576,14,1.735,169.5580845,89.57660413,273.6283687,PROP
TR,100,1.735,101,1.576,15,1.735,273.9971744,90.03246625,331.7785889,PROP

私の現在の出力:

Control
i = 0, j = 0, textItem = CP
i = 1, j = 0, textItem = CP
i = 2, j = 0, textItem = TR
i = 3, j = 0, textItem = TR
i = 4, j = 0, textItem = TR
i = 5, j = 0, textItem = TR
i = 6, j = 0, textItem = TR
i = 7, j = 0, textItem = TR
i = 8, j = 0, textItem = TR
i = 9, j = 0, textItem = TR
i = 10, j = 0, textItem = TR
i = 11, j = 0, textItem = TR
i = 12, j = 0, textItem = TR
i = 13, j = 0, textItem = TR
i = 14, j = 0, textItem = TR
i = 15, j = 0, textItem = TR
i = 16, j = 0, textItem = TR
TR
CP
6065.6221
1.735

私が見たいもの:

Control
i = 0, j = 0, textItem = CP
Control
i = 1, j = 0, textItem = CP
Traverse
i = 2, j = 0, textItem = TR
Traverse
i = 3, j = 0, textItem = TR
Traverse
i = 4, j = 0, textItem = TR
Traverse
i = 5, j = 0, textItem = TR
Traverse
i = 6, j = 0, textItem = TR
Traverse
i = 7, j = 0, textItem = TR

等...

4

1 に答える 1

0

次のように、の代わりに で$_POST配列を分割します。"\n""\r"

$textArea = explode("\n", $_POST['textArea']);

$i = 0;

foreach ($textArea as $textRows) 
{
    $j = 0;

    $textRow = explode(",", $textRows);

    foreach ($textRow as $textItem[$i][$j]) 
    {
        if ($j == 0) 
        {
            if (("TR") == ($textItem[$i][$j])) 
            {
                echo("Traverse <br>");
            }
            if (("CP") == ($textItem[$i][$j])) 
            {
                echo("Control <br>");
            }
           echo("i = $i, j = $j, textItem = " . $textItem[$i][$j] . "<br>");
       }
       $j++;
    }
   $i++;
}

echo($textItem[9][0] . "<br>");
echo($textItem[0][0] . "<br>");
echo($textItem[0][3] . "<br>");
echo($textItem[5][6] . "<br>");


実際の例については、http: //codepad.viper-7.com/XltceQを参照してください。


出力:

Control 
i = 0, j = 0, textItem = CP
Control 
i = 1, j = 0, textItem = CP
Traverse 
i = 2, j = 0, textItem = TR
Traverse 
i = 3, j = 0, textItem = TR
Traverse 
i = 4, j = 0, textItem = TR
Traverse 
i = 5, j = 0, textItem = TR
Traverse 
i = 6, j = 0, textItem = TR
Traverse 
i = 7, j = 0, textItem = TR
Traverse 
i = 8, j = 0, textItem = TR
Traverse 
i = 9, j = 0, textItem = TR
Traverse 
i = 10, j = 0, textItem = TR
Traverse 
i = 11, j = 0, textItem = TR
Traverse 
i = 12, j = 0, textItem = TR
Traverse 
i = 13, j = 0, textItem = TR
Traverse 
i = 14, j = 0, textItem = TR
Traverse 
i = 15, j = 0, textItem = TR
Traverse 
i = 16, j = 0, textItem = TR
TR
CP
6065.6221
1.735
于 2012-10-14T22:33:28.590 に答える