1

配列から値を抽出/取得し、その値を変数に割り当てて、すべての値の合計を取得する方法を探しています。

より具体的には、ユーザーは特定の文字グループを入力します。入力される文字は、一致するかどうかにかかわらず、既存の配列のキーと比較されます。配列に一致がある場合、(一致する) キーの対応する値が新しい変数に割り当てられ、値の合計 (w/c は数値であることが期待されます) が計算されます。私はこれのための方法を見つけようとしてきましたが、経験不足のため、本当に良い方法を見つけられませんでした.

これについて何か考えはありますか?提案してください?

コードは次のとおりです。

<?php
    class GreekNum
    {           
        public function setText($text)
        {
            $this->text=$text;
        }

        public function getText()
        {
            return $this->text;
        }       

        public function Convert($text)
        {

            $TextLength = strlen($text);
            $text = strtoupper($text);
            $text = str_split($text);       

            $collection = array(
                                    "A" => 1,
                                    "B" => 2,
                                    "G" => 3,
                                    "D" => 4,
                                    "E" => 5,
                                    "#" => 6,
                                    "Z" => 7,
                                    "Y" => 8,
                                    "H" => 9,
                                    "I" => 10,
                                    "K" => 20,
                                    "4" => 30,
                                    "M" => 40,
                                    "N" => 50,
                                    "X" => 60,
                                    "O" => 70,
                                    "P" => 80,
                                    "Q" => 90,
                                    "R" => 100,
                                    "S" => 200,
                                    "T" => 300,
                                    "U" => 400,
                                    "F" => 500, 
                                    "C" => 600,             
                                    "$" => 700,
                                    "W" => 800,
                                    "3" => 900, 
                                );

            if(isset($text))
            {
                $total = 0;
                for($i=0; $i<$TextLength; $i++)
                {
                    if(array_key_exists($text[$i], $collection))
                    {
                        $total += $text[$i];
                    }
                }
                return $total;

            }                   
        }

    }   

    $GreekNum = new GreekNum();

    $text = $_POST['text'];
    $GreekNum->setText($text);

    echo "<br>";
    echo "<b>Entered Values: </b><br>". $GreekNum->getText();
    echo "<br>";
    echo "<br>";

    echo "<b>Decimal Number Equivalence: </b><br/>". $GreekNum->Convert($text);



?>

これらのコードを見た人たちへ、はい、見つけられないようなエラーがあったので投稿しました。エラーを修正できましたが、現在の問題は、必要な出力を実際に取得できないことです。理解してください。ありがとう。

4

1 に答える 1

1

入力した各文字の値の合計を求めている場合は、次のように置き換えます。

$total += $text[$i];

これで :

$total += $collection[$text[$i]];
于 2012-07-24T01:01:02.483 に答える