Autor | Zpráva | ||
---|---|---|---|
sparky Profil * |
#1 · Zasláno: 10. 9. 2018, 13:32:28
Zdravím, mám vytvořeného krokového průvodce, v každém kroku zvolím jednu variantu. Na konci mám zvolené 4 možnosti (pohlaví, věk, výška, váha). Podle těchto 4 variant bych chtěl vybrat jednu variantu produktu. Mám několik variant produktu a varianta by se měla vybírat podle zvolených možností. Takže např. muž, věk 20-25, výška 170-180cm nebo nad 190 cm, váha pod 70kg nebo nad 90kg... varianty mám předem definované -> jaká kombinace možností dává určitou variantu. A chtěl bych se zeptat, jak elegantně vygenerovat ze zadaných možností danou variantu.
Zatím mě napadlo vypisovat to přes if, každou možnost varianty zvlášť, ale to bych mě hodně "ifů" a přijde mi to takové neefektivní: if($pohlavi == 'Žena' AND $vaha == 'pod 70 kg'){ $varianta = 'A'; return $varianta; } if($pohlavi == 'Žena' AND $vaha == '70 - 100 kg' AND $vek == '20-25'){ $varianta = 'A'; return $varianta; } if($pohlavi == 'Žena' AND $vaha == '70 - 100 kg' AND $vek == '30-35'){ $varianta = 'A'; return $varianta; } |
||
Tomášeek Profil |
sparky:
Podmínky se dají zanořovat, bude to přehlednější. Jinak moc možností není, tady ani switch nepomůže přehlednosti. if ($pohlavi === 'zena') { if ($vaha === '') { if ($vek === '') {} } elseif ($vaha === '') { // zase vek } } else { // muz } Podle počtu podmínek se dá řešit pořadí a úroveň zanoření, co bude přehlednější (jestli začít muž/žena, nebo třeba věkem). |
||
T-fon Profil |
#3 · Zasláno: 10. 9. 2018, 14:02:39
Pokud je ten věk po 5 letech, tak jako poslední dát switch by to trochu zpřehlednilo, ne?
|
||
zrnecx Profil |
Např.:
// [pohlavi][vek][vaha] $varianty = [ "Žena"=>[ "20-25"=>[ "0-69"=>"VariantaA" "70-100"=>"VariantaA" "101-150"=>"VariantaB" ], "26-39"=>[ "0-69"=>"VariantaB" "70-100"=>"VariantaB" "101-150"=>"VariantaC" ] ], "Muž"=>[ "20-25"=>[ "0-69"=>"VariantaA" "70-100"=>"VariantaB" "101-150"=>"VariantaB" ], "26-39"=>[ "0-69"=>"VariantaB" "70-100"=>"VariantaC" "101-150"=>"VariantaC" ] ] ]; Nasledne tohle: $Pohlavi = "Žena"; $Věk = "20-25"; $Vaha = "70-100"; if(isset($varianty[$Pohlavi][$Věk][$Vaha])) { $Varianta = $varianty[$Pohlavi][$Věk][$Vaha]; //Tohle vrati text "VariantaA" } else { die("zadana kombinace neexistuje"); } Teda příjde mi to lepší než 40 tisíc ifů :) |
||
Časová prodleva: 6 let
|
0