您将如何多次打印“ IF”语句并将其放入后期订单中

时间:2018-11-13 08:42:05

标签: php

// These are my Variables
$a = "a";
$b = "b";
$c = "c";

//My Post Form Data
$post = $_POST['name'];

//My Statements
if (isset($_POST['name']) && preg_match("/\b($a)\b/", $post )) {
    echo '64';
}
if (isset($_POST['name']) && preg_match("/\b($b)\b/", $post )) {
    echo '67';
}
if (isset($_POST['name']) && preg_match("/\b($c)\b/", $post )) {
    echo '66';
}

问题是我希望abc位于form order中,然后再打印一次。因此,如果我输入cba,我希望它打印666764

如果我将表单输入作为cbaa发送,我希望输入为66676464。当前它将以此646766的形式发布!

编辑:穆罕默德教徒工作了!

2 个答案:

答案 0 :(得分:0)

您可以简单地从字符串进行迭代

$statements = [
    'a' = 64, 
    'b' = 67, 
    'c' = 66
];

$input = isset($_POST['name']) ? $_POST['name'] : null;
$output = null;

for($x = 0; $x < strlen($input); $x++) {
    $letter = strtolower($input[$x]);

    if(!isset($statements[$letter])) {
        continue;
    }

    // Do something if 'a', 'b', 'c'
    // if($letter == 'a') etc ..

    $output .= "" . $statements[$letter];
}

echo $output;

答案 1 :(得分:0)

Mohammad的评论可能是这个问题的最简洁答案,所有荣誉归他所有。

使用str_replace函数使其成为一个衬纸:

$str = 'cbaa';
$res = str_replace(['a', 'b', 'c'], ['65', '66', '67'], $str);
echo $res;
// prints 67666565 as expected