Php 有没有办法把这段代码简化得太多呢

Php 有没有办法把这段代码简化得太多呢,php,ajax,if-statement,switch-statement,Php,Ajax,If Statement,Switch Statement,该代码应该对用户输入进行评分,并为用户获得正确答案。它工作正常,但只是想尽量减少它可能是在MVC中实现它。 我从Ajax帖子中获取变量。 如果可能的话,我需要你的帮助 <?php function getResults($type) { // variables to store Ajax post Data. $period = $_POST ['duration']; $place = $_POST ['vacationplac

该代码应该对用户输入进行评分,并为用户获得正确答案。它工作正常,但只是想尽量减少它可能是在MVC中实现它。 我从Ajax帖子中获取变量。 如果可能的话,我需要你的帮助

<?php
    function getResults($type) {

        // variables to store Ajax post Data.
        $period = $_POST ['duration'];
        $place = $_POST ['vacationplace'];
        $serv = $_POST ['services'];
        $disc = $_POST ['discovery'];
        $Trans = $_POST ['transport'];
        $accomp = $_POST ['accompanied'];
        $stars = $_POST ['stars'];

        // Results Array
        $type = array (
                0 => array (
                        "val" => 0,
                        "title" => "Weltenbummler" 
                ),

                1 => array (

                        "val" => 0,
                        "title" => "Luxusliebhaber" 
                ),
                2 => array (
                        "val" => 0,
                        "title" => "Naturbursche/-madle" 
                ),
                3 => array (
                        "val" => 0,
                        "title" => "Sunnyboy/-girl" 
                ),
                4 => array (
                        "val" => 0,
                        "title" => "Wasserratte" 
                ),
                5 => array (
                        "val" => 0,
                        "title" => "Wellnessliebhaber" 
                ),
                6 => array (
                        "val" => 0,
                        "title" => "Adrenalinjunkie" 
                ),
                7 => array (
                        "val" => 0,
                        "title" => "Städtebummler" 
                ) 
        );

        $type [] = "";
        // Expenditure ranges
        $exp = explode ( ',', $_POST ['userBudget'] );
        foreach ( $exp as $key => $arrE ) {
            $arrEx = $arrE;
            if ($arrE < 300) {
                $type [0] ["val"] += 0;
                $type [1] ["val"] += .1;
                $type [2] ["val"] += .5;
                $type [3] ["val"] += .3;
                $type [4] ["val"] += .7;
                $type [5] ["val"] += 1;
                $type [6] ["val"] += .1;
                $type [7] ["val"] += .1;
            }
            if ($arrEx >= 300 && $arrEx <= 500) {
                $type [0] ["val"] += 0;
                $type [1] ["val"] += 1;
                $type [2] ["val"] += 1;
                $type [3] ["val"] += 1;
                $type [4] ["val"] += 1;
                $type [5] ["val"] += 1;
                $type [6] ["val"] += 0;
                $type [7] ["val"] += 1;
            }
            if ($arrEx >= 600 && $arrEx <= 800) {
                $type [0] ["val"] += 1;
                $type [1] ["val"] += 1;
                $type [2] ["val"] += 1;
                $type [3] ["val"] += 1;
                $type [4] ["val"] += 1;
                $type [5] ["val"] += 1;
                $type [6] ["val"] += 1;
                $type [7] ["val"] += 1;
            }
            if ($arrEx >= 900 && $arrEx <= 1000) {
                $type [0] ["val"] += 1;
                $type [1] ["val"] += 1;
                $type [2] ["val"] += 1;
                $type [3] ["val"] += 1;
                $type [4] ["val"] += 1;
                $type [5] ["val"] += 1;
                $type [6] ["val"] += 1;
                $type [7] ["val"] += 1;
            }
            if ($arrEx >= 1500 && $arrEx <= 3000) {
                $type [0] ["val"] += 1;
                $type [1] ["val"] += 1;
                $type [2] ["val"] += 1;
                $type [3] ["val"] += 1;
                $type [4] ["val"] += 1;
                $type [5] ["val"] += 1;
                $type [6] ["val"] += 1;
                $type [7] ["val"] += 1;
            }
        }

        // seasons
        $Season = explode ( ',', $_POST ['seasonString'] );
        foreach ( $Season as $key => $arrS ) {
            $arrSe = $arrS;
            if ($arrSe == "1") {
                $type [0] ["val"] += .5;
                $type [1] ["val"] += .5;
                $type [2] ["val"] += .5;
                $type [3] ["val"] += .5;
                $type [4] ["val"] += .5;
                $type [5] ["val"] += .5;
                $type [6] ["val"] += .5;
                $type [7] ["val"] += .5;
            }
            if ($arrSe == "2") {
                $type [0] ["val"] += .5;
                $type [1] ["val"] += .5;
                $type [2] ["val"] += .5;
                $type [3] ["val"] += .5;
                $type [4] ["val"] += .5;
                $type [5] ["val"] += .5;
                $type [6] ["val"] += .5;
                $type [7] ["val"] += .5;
            }
            if ($arrSe == "3") {
                $type [0] ["val"] += .5;
                $type [1] ["val"] += .5;
                $type [2] ["val"] += .5;
                $type [3] ["val"] += .5;
                $type [4] ["val"] += .5;
                $type [5] ["val"] += .5;
                $type [6] ["val"] += .5;
                $type [7] ["val"] += .5;
            }
            if ($arrSe == "4") {
                $type [0] ["val"] += .5;
                $type [1] ["val"] += .5;
                $type [2] ["val"] += .5;
                $type [3] ["val"] += .3;
                $type [4] ["val"] += .3;
                $type [5] ["val"] += .5;
                $type [6] ["val"] += .3;
                $type [7] ["val"] += .5;
            }
        }

        // user desires
        $desires = explode ( ',', $_POST ['desiresString'] );
        foreach ( $desires as $key => $arrD ) {
            $arrDe = $arrD;
            if ($arrDe == "1") {
                $type [0] ["val"] += 0;
                $type [1] ["val"] += 0;
                $type [2] ["val"] += .5;
                $type [3] ["val"] += 0;
                $type [4] ["val"] += 0;
                $type [5] ["val"] += 0;
                $type [6] ["val"] += 0;
                $type [7] ["val"] += .2;
            }
            if ($arrDe == "2") {
                $type [0] ["val"] += .5;
                $type [1] ["val"] += .5;
                $type [2] ["val"] += .5;
                $type [3] ["val"] += 1;
                $type [4] ["val"] += 1;
                $type [5] ["val"] += .5;
                $type [6] ["val"] += .7;
                $type [7] ["val"] += 1;
            }
            if ($arrDe == "3") {
                $type [0] ["val"] += .5;
                $type [1] ["val"] += .5;
                $type [2] ["val"] += 1;
                $type [3] ["val"] += .7;
                $type [4] ["val"] += 1;
                $type [5] ["val"] += .5;
                $type [6] ["val"] += .7;
                $type [7] ["val"] += .5;
            }
            if ($arrDe == "4") {
                $type [0] ["val"] += 1;
                $type [1] ["val"] += .5;
                $type [2] ["val"] += .5;
                $type [3] ["val"] += 1;
                $type [4] ["val"] += .7;
                $type [5] ["val"] += .7;
                $type [6] ["val"] += 1;
                $type [7] ["val"] += 1;
            }
            if ($arrDe == "5") {
                $type [0] ["val"] += .5;
                $type [1] ["val"] += .3;
                $type [2] ["val"] += .5;
                $type [3] ["val"] += .7;
                $type [4] ["val"] += .8;
                $type [5] ["val"] += .3;
                $type [6] ["val"] += .5;
                $type [7] ["val"] += .8;
            }
            if ($arrDe == "6") {
                $type [0] ["val"] += 0;
                $type [1] ["val"] += .7;
                $type [2] ["val"] += .5;
                $type [3] ["val"] += .7;
                $type [4] ["val"] += 1;
                $type [5] ["val"] += 1;
                $type [6] ["val"] += .4;
                $type [7] ["val"] += .3;
            }
            if ($arrDe == "7") {
                $type [0] ["val"] += .8;
                $type [1] ["val"] += .3;
                $type [2] ["val"] += .3;
                $type [3] ["val"] += .3;
                $type [4] ["val"] += .3;
                $type [5] ["val"] += .3;
                $type [6] ["val"] += .8;
                $type [7] ["val"] += 1;
            }
            if ($arrDe == "8") {
                $type [0] ["val"] += .8;
                $type [1] ["val"] += .3;
                $type [2] ["val"] += .9;
                $type [3] ["val"] += .7;
                $type [4] ["val"] += 1;
                $type [5] ["val"] += 1;
                $type [6] ["val"] += .7;
                $type [7] ["val"] += .3;
            }
        }

        // vacations period

        if ($period == "1") {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += .5;
            $type [2] ["val"] += .8;
            $type [3] ["val"] += 1;
            $type [4] ["val"] += .8;
            $type [5] ["val"] += .5;
            $type [6] ["val"] += .7;
            $type [7] ["val"] += .6;
        }
        if ($period == "2") {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += .9;
            $type [2] ["val"] += .8;
            $type [3] ["val"] += .8;
            $type [4] ["val"] += .9;
            $type [5] ["val"] += 1;
            $type [6] ["val"] += .9;
            $type [7] ["val"] += 1;
        }
        if ($period == "3") {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += 1;
            $type [2] ["val"] += 1;
            $type [3] ["val"] += 1;
            $type [4] ["val"] += 1;
            $type [5] ["val"] += 1;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += 1;
        }
        if ($period == "4") {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += 1;
            $type [2] ["val"] += 1;
            $type [3] ["val"] += 1;
            $type [4] ["val"] += 1;
            $type [5] ["val"] += 1;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += 1;
        }

        // Vacation places
        if ($place == "1") {
            $type [0] ["val"] += 0;
            $type [1] ["val"] += .9;
            $type [2] ["val"] += .7;
            $type [3] ["val"] += .7;
            $type [4] ["val"] += .7;
            $type [5] ["val"] += .9;
            $type [6] ["val"] += .5;
            $type [7] ["val"] += 1;
        }
        if ($place == "2") {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += .9;
            $type [2] ["val"] += .7;
            $type [3] ["val"] += .9;
            $type [4] ["val"] += .9;
            $type [5] ["val"] += .9;
            $type [6] ["val"] += .9;
            $type [7] ["val"] += .9;
        }
        if ($place == "3") {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += 1;
            $type [2] ["val"] += .9;
            $type [3] ["val"] += 1;
            $type [4] ["val"] += .9;
            $type [5] ["val"] += .8;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += .9;
        }

        // Hotel Services

        if ($serv == "1") {
            $type [0] ["val"] += .08;
            $type [1] ["val"] += .08;
            $type [2] ["val"] += .08;
            $type [3] ["val"] += .08;
            $type [4] ["val"] += .08;
            $type [5] ["val"] += .08;
            $type [6] ["val"] += .08;
            $type [7] ["val"] += .08;
        }
        if ($serv == "2") {
            $type [0] ["val"] += .09;
            $type [1] ["val"] += .09;
            $type [2] ["val"] += .09;
            $type [3] ["val"] += .09;
            $type [4] ["val"] += .09;
            $type [5] ["val"] += .09;
            $type [6] ["val"] += .09;
            $type [7] ["val"] += .09;
        }
        if ($serv == "3") {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += 1;
            $type [2] ["val"] += 1;
            $type [3] ["val"] += 1;
            $type [4] ["val"] += 1;
            $type [5] ["val"] += 1;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += 1;
        }

        // Place Discoveries

        if ($disc == "1") {
            $type [0] ["val"] += .09;
            $type [1] ["val"] += .07;
            $type [2] ["val"] += .08;
            $type [3] ["val"] += .08;
            $type [4] ["val"] += .08;
            $type [5] ["val"] += .08;
            $type [6] ["val"] += .05;
            $type [7] ["val"] += .05;
        }
        if ($disc == "2") {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += .09;
            $type [2] ["val"] += .08;
            $type [3] ["val"] += .06;
            $type [4] ["val"] += .05;
            $type [5] ["val"] += 1.05;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += 1;
        }

        // Transportation
        if ($Trans == "1") {
            $type [0] ["val"] += .09;
            $type [1] ["val"] += .06;
            $type [2] ["val"] += .05;
            $type [3] ["val"] += .05;
            $type [4] ["val"] += .05;
            $type [5] ["val"] += 1;
            $type [6] ["val"] += .09;
            $type [7] ["val"] += 1;
        }
        if ($Trans == "2") {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += .09;
            $type [2] ["val"] += .06;
            $type [3] ["val"] += 1;
            $type [4] ["val"] += .09;
            $type [5] ["val"] += .04;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += .09;
        }
        if ($Trans == "3") {
            $type [0] ["val"] += .09;
            $type [1] ["val"] += .09;
            $type [2] ["val"] += .08;
            $type [3] ["val"] += .05;
            $type [4] ["val"] += .07;
            $type [5] ["val"] += .09;
            $type [6] ["val"] += .06;
            $type [7] ["val"] += 1;
        }

        // Hotel Ratting

        if ($stars == "1") {
            $type [0] ["val"] += .05;
            $type [1] ["val"] += .05;
            $type [2] ["val"] += .05;
            $type [3] ["val"] += .05;
            $type [4] ["val"] += .05;
            $type [5] ["val"] += .05;
            $type [6] ["val"] += .05;
            $type [7] ["val"] += .05;
        }
        if ($stars == "2") {
            $type [0] ["val"] += .06;
            $type [1] ["val"] += .06;
            $type [2] ["val"] += .06;
            $type [3] ["val"] += .06;
            $type [4] ["val"] += .06;
            $type [5] ["val"] += .06;
            $type [6] ["val"] += .06;
            $type [7] ["val"] += .06;
        }
        if ($stars == "3") {
            $type [0] ["val"] += .07;
            $type [1] ["val"] += .07;
            $type [2] ["val"] += .07;
            $type [3] ["val"] += .07;
            $type [4] ["val"] += .07;
            $type [5] ["val"] += .07;
            $type [6] ["val"] += .07;
            $type [7] ["val"] += .07;
        }
        if ($stars == "4") {
            $type [0] ["val"] += .09;
            $type [1] ["val"] += .09;
            $type [2] ["val"] += .09;
            $type [3] ["val"] += .09;
            $type [4] ["val"] += .09;
            $type [5] ["val"] += .09;
            $type [6] ["val"] += .09;
            $type [7] ["val"] += .09;
        }
        if ($stars == "5") {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += 1;
            $type [2] ["val"] += 1;
            $type [3] ["val"] += 1;
            $type [4] ["val"] += 1;
            $type [5] ["val"] += 1;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += 1;
        }

        // Traveling with Partner, Family or Alone
        if ($accomp == "1") {
            $type [0] ["val"] += .19;
            $type [1] ["val"] += .19;
            $type [2] ["val"] += .18;
            $type [3] ["val"] += .20;
            $type [4] ["val"] += .20;
            $type [5] ["val"] += .19;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += 1;
        }
        if ($accomp == "2") {
            $type [0] ["val"] += .20;
            $type [1] ["val"] += .20;
            $type [2] ["val"] += .16;
            $type [3] ["val"] += .20;
            $type [4] ["val"] += .20;
            $type [5] ["val"] += .20;
            $type [6] ["val"] += .17;
            $type [7] ["val"] += .15;
        }
        if ($accomp == "3") {
            $type [0] ["val"] += .16;
            $type [1] ["val"] += .15;
            $type [2] ["val"] += .19;
            $type [3] ["val"] += .20;
            $type [4] ["val"] += .19;
            $type [5] ["val"] += .16;
            $type [6] ["val"] += .16;
            $type [7] ["val"] += .19;
        }

        // loop and count value Entered for Results outcome
        $maxVal = $type [0];
        for($i = 1; $i < count ( $type ); $i ++) {
            if ($type [$i] ["val"] > $maxVal ["val"]) {
                $maxVal = $type [$i];
            }
        }

        echo "<h3> Du bist " . $maxVal ["title"] . " </h3>";

    }
    ?>

使用
开关盒
而不是太多的
else if
语句


嘿,你确定你的代码需要这些行吗

if ($arrEx >= 600 && $arrEx <= 800) {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += 1;
            $type [2] ["val"] += 1;
            $type [3] ["val"] += 1;
            $type [4] ["val"] += 1;
            $type [5] ["val"] += 1;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += 1;
        }
        if ($arrEx >= 900 && $arrEx <= 1000) {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += 1;
            $type [2] ["val"] += 1;
            $type [3] ["val"] += 1;
            $type [4] ["val"] += 1;
            $type [5] ["val"] += 1;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += 1;
        }
        if ($arrEx >= 1500 && $arrEx <= 3000) {
            $type [0] ["val"] += 1;
            $type [1] ["val"] += 1;
            $type [2] ["val"] += 1;
            $type [3] ["val"] += 1;
            $type [4] ["val"] += 1;
            $type [5] ["val"] += 1;
            $type [6] ["val"] += 1;
            $type [7] ["val"] += 1;
        }

上面是伪代码,我认为用php代码很容易转换:)

用Java标记这个问题的原因是什么?如果php支持,请使用switch caseit@SoumitriPattnaik你在开玩笑吗?当然PHP支持它。还有一件事告诉我一个不支持switch case的流行语言名称;-)您可以使用switch case语句我不知道
开关
会整理此代码,使其更易于管理,或提高性能。我的建议是将各种可能的增量存储为一个数组,然后使用函数测试每个条件并应用正确的增量。嗨,我不知道你真正指的是哪一行。我只是想也许是减少我的if声明的方法。我不知道你说的分级文件名是什么意思。如果你还有问题,我已经更新了我的答案,然后问:)。谢谢,我很忙,所以我无法检查你的伪代码。不管怎样,如果有什么需要,thanx会给你回复的
foreach ( $exp as $key => $arrE ) {
        $arrEx = $arrE;
        Loop: iterate n times using i {
                  low = $Lower[i] , high = $High[i]
                  IF arrEx lies in range THEN
                         Loop: iterate 8 times using j {
                                         $type[j]["val"] += increment[i][j] 
                        }
                   END IF
           }
   }