对数组结果数字求和


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 += array_sum(str_split($text));更改了$sum += $text;

我现在正在寻找如何在第一次替换结果后仅应要求打印它。

要获取输入的总和,只需使用以下命令:

$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;
    }
?>

冒着完成家庭作业的风险:

$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;
?>