求和数组结果数

sum array result numbers

<?php
$text = $_POST['oviliz'];
$replaces = array(
    'a' => '1',
    'b' => '2',
    'c' => '3',
    'd' => '4',
    'e' => '5',
);
for( $i=0,$l=strlen($text);$i<$l;$i++ ){
    if( isset($replaces[$text[$i]]) ){
        $text[$i] = $replaces[$text[$i]];
    }
}
?>
<form action="" method="post">
<p>My input text: <input name="oviliz" type="text"/><input class="button" type="submit" name="submit" value="Submit"/></p>
</form>
<?php
echo "Numbers: ".$text;
$sum = 0;
$sum += array_sum(str_split($text));
echo "= " .$sum;
?>

我想对替换后的结果求和。在我的示例中,如果我键入 "abc",结果将是“123”。然后我想对“1+2+3”求和并得到结果 6.

编辑 感谢 Rizier123,我已经将 $sum += $text; 更改为 $sum += array_sum(str_split($text));

我现在正在寻找如何仅在第一次替换结果后根据要求打印此文件。

冒着完成作业的风险:

$sum = array_sum(
    array_intersect_key($replaces, array_flip(str_split($_POST['oviliz'])))
);

我会这样做:

$input = $_POST['oviliz'];
$replaces = array(
    'a' => '1',
    'b' => '2',
    'c' => '3',
    'd' => '4',
    'e' => '5',
);
$letters = str_split($input);
foreach($letters as $letter){
    $total += $replaces[$letter];
}
?>
<form action="" method="post">
    <p>My input text: <input name="oviliz" type="text"/><input class="button" type="submit" name="submit" value="Submit"/></p>
</form>
<?php
echo "Numbers: " . $input;
echo "= " . $total;
?>

要获得输入的总和,只需使用这个:

$sum += array_sum(str_split($text));

并且仅在按下提交按钮时打印它,只需像这样进行基本检查:

<form action="" method="post">
    <p>My input text: <input name="oviliz" type="text"/><input class="button" type="submit" name="submit" value="Submit"/></p>
</form>

<?php

    if(isset($_POST["submit"])) {
     //^^^^^ Check's if the submit button is pressed                

        $text = $_POST['oviliz'];
        $replaces = array(
            'a' => '1',
            'b' => '2',
            'c' => '3',
            'd' => '4',
            'e' => '5',
        );

        for( $i=0,$l=strlen($text);$i<$l;$i++ ){
            if( isset($replaces[$text[$i]]) ){
                $text[$i] = $replaces[$text[$i]];
            }
        }


        echo "Numbers: ".$text;
        $sum = 0;
        $sum += array_sum(str_split($text));
        echo "= " .$sum;

    }

?>