Как уменьшение условия с более чем 10 If в PHP

я делаю конвертер роста с php (страховка с другим языком была бы более легкой но хочу сделать это в php) и хочу, чтобы пользователь выбрал начальное средство (US, EU, или См), позже показал Ваш рост и потом печаталась таблица с эквивалентностью в каждом типе средства.

Уже это у меня есть - конечно не самой ортодоксальной формы, но у меня есть она, - но я хочу знать, есть ли способ уменьшать весь этот процесс. Так как он состоит desgastante в том, чтобы говорить ему очень в машину "6.5 US равняйся в: X EU, X См." "7 US равняйся в: X EU, X См", сохранять эту эквивалентность в переменной и потом печатать их в таблице. потому что кроме того даже мне не хватает делать эквивалентность EU и См.

Мне хотелось бы знать, могла ли делать функция или нечто похожее, что облегчало бы мне этот процесс.

Заранее спасибо.

Здесь мой код:

<!DOCTYPE html>

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
    <title>p</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/styles.css">

<?php


  error_reporting(0);      

$from = $_POST['from'];
//$to = $_POST['to'];
$talla_recibida = $_POST['talla_recibida'];
//$talla_convertida = "";


if ($from == "US"){

if($talla_recibida == "6" ){

    $talla_uk = "5.5";  
    $talla_us = $talla_recibida;  
    $talla_eu = "38.5"; 
    $talla_cm = "23.7";


}
elseif($talla_recibida == "6.5"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "7"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "40"; 
    $talla_cm = "24.5";


     }elseif($talla_recibida == "7.5"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "8"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "8.5"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "9"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "9.5"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "10"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "10.5"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "11"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "11.5"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "12"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "12.5"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "13"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }elseif($talla_recibida == "13.5"){

    $talla_uk = "6";  
    $talla_us = $talla_recibida;  
    $talla_eu = "39"; 
    $talla_cm = "24.1";


     }

}
?>








<center>

<form method="post" action="calculadora_2.php">




    En que medida esta tu talla:
    <select id="talla" name="from" class="dropdow1">
                                            <option class="list-language" value="US">US</option>
                                            <option class="list-language" value="UK">UK</option>
                                            <option class="list-language" value="EU">EU</option>
                                            <option class="list-language" value="Cm">Cm</option>
                                            </select>    
<p>   
<input type="text" placeholder="Insertar talla" name="talla_recibida">
<input type="submit" value="convertir">
</p>


</form>


 <center>
   <table>
   <tr>
   <th>US</th>
   <th>UK</th>
   <th>EU</th>
   <th>Cm</th>
    </tr>
    <tr>
    <td><?php echo $talla_us ?></td>
    <td><?php echo $talla_uk ?></td>
    <td><?php echo $talla_eu ?></td>
    <td><?php echo $talla_cm ?></td>
    </tr>
    </table>
    </center>    




</center>

0
задан 06.11.2019, 23:47
2 ответа

В этом случае recomedaria использовать базу данных, ввиду переменчивости, которая может давать тебе, если он не внутри твоих posibidades, ты можешь производить постоянную величину, в которой будет рост, внутри array, который ты производил, ты будешь должен называть ключи с элементами, которые будет нужно искать.

Пример

<?php

const TALLAS = [
    'USA' => [
        '6' => [
            'talla_uk' => "5.5",  
            'talla_eu' => "38.5", 
            'talla_cm' => "23.7",
        ],
        '6.5' => [
            'talla_uk' => "6",  
            'talla_eu' => "39", 
            'talla_cm' => "24.1",
        ]
    ]
];

print_r(TALLAS['USA']['6']);

print_r(TALLAS['USA']['6']['talla_uk']);

Из этой формы ты сможешь соглашаться на ресурсы, что necesistes без необходимости IF.

1
ответ дан 01.12.2019, 12:28

Если estГЎs используя php ты конечно используешь одну aplicaciГіn с базой данных. Я то, что ты sugerirГ - в es создавать таблицу в базе данных с эквивалентностью роста и asГ - когда он загрузит ее aplicaciГіn, они хранило в array и манипулировало ими с allГ - чтобы только показывать их без необходимости не вычислять ничего, если ты используешь framework стиль laravel или symfony так как это ты это pondrГ - в больше fГЎcil aГєn.

Это pondrГ - в в базе данных по разуму, рост обычно estГЎticas а именно 10 США всегда это будет 8 Европа из-за того, что поместит пример, ты не должен считать каждый раз, когда было выбрано что-то, они не являются меняющими, что сегодня 10 США равняется 7 europa и maГ±ana он равняется 9 europa.

я не знаю больше твоего app, но если ты видишь вещи из-за стиля woocommerce края, которые это обычно работают таким образом, ты показываешь продукт с Вашим ростом и Вашей эквивалентностью в то же время и не делая я считаю каждый раз, когда пользователь выбирает что-то.

С другой стороны, если ты нуждаешься в стольких сцепленных if, правда состоит в том, что ты должен переделывать cГіdigo, потому что это не хорошая практика и переключатель ты salvarГ - во многие вещи, но также ты это recomendarГ - в в этом случае.

0
ответ дан 01.12.2019, 12:28