The Code supposed to rate user input and get the correct answer for the User. it works alright but just want to minimize it may be implment it in MVC. am getting the variables from Ajax post. Need Your Help if is possible Thanx a lot.
<?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>";
}
?>
Hey are you sure that your code should need to have these lines
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;
}
you can store your ranges into array example Lower = {600, 900, 1500} and High = {800, 1000, 3000} and one 2D array which contain delta/increment which you need to increase now iterate loop and check on which index of array arrEx lie and update your type array's values i hope you understand (Sorry for my poor english).
EDITED--------------
I was saying is that suppose you have 2 one dimensional array $Lower = {L1, L2, L3.. Ln} and $High = {H1, H2, H3....Hn} and one 2 dimensional array $increment = {{0_val_increment_value, 1_val_increment_value,,,,,7.}, ...... n times} now code will be
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
}
}
Above is pseudocode i think its easy to convert in php code :)
Use switch case
instead of so many else if
statements
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.