|
|
|
| Как по другому организовать эту грамоздную проверку?
Заранее спс!
switch($st){
case 1:
switch($den)
{
case 1:
$bt=0.88;
break;
case 2:
$bt=0.86;
break;
case 3:
$bt=0.84;
break;
case 4:
$bt=0.81;
break;
case 5:
$bt=0.80;
break;
}
break;
case 2:
switch($cena){
case "50 000 $":
switch($den)
{
case 1:
$bt=2.50;
break;
case 2:
$bt=2.47;
break;
case 3:
$bt=2.44;
break;
case 4:
$bt=2.41;
break;
case 5:
$bt=2.30;
break;
}
break;
case "70 000 $":
switch($den)
{
case 1:
$bt=2.90;
break;
case 2:
$bt=2.88;
break;
case 3:
$bt=2.86;
break;
case 4:
$bt=2.84;
break;
case 5:
$bt=2.82;
break;
}
break;
case "100 000 $":
switch($den)
{
case 1:
$bt=3.50;
break;
case 2:
$bt=3.38;
break;
case 3:
$bt=3.36;
break;
case 4:
$bt=3.34;
break;
case 5:
$bt=3.32;
break;
}
break;
}
break;
case 4:
switch($cena){
case "10 000 $":
switch($den)
{
case 1:
$bt=1.00;
break;
case 2:
$bt=0.98;
break;
case 3:
$bt=0.96;
break;
case 4:
$bt=0.94;
break;
case 5:
$bt=0.92;
break;
}
break;
case "15 000 $":
switch($den)
{
case 1:
$bt=1.2;
break;
case 2:
$bt=1.08;
break;
case 3:
$bt=1.06;
break;
case 4:
$bt=1.04;
break;
case 5:
$bt=1.02;
break;
}
break;
case "20 000 $":
switch($den)
{
case 1:
$bt=1.3;
break;
case 2:
$bt=1.28;
break;
case 3:
$bt=1.26;
break;
case 4:
$bt=1.24;
break;
case 5:
$bt=1.22;
break;
}
break;
case "25 000 $":
switch($den)
{
case 1:
$bt=1.40;
break;
case 2:
$bt=1.38;
break;
case 3:
$bt=1.36;
break;
case 4:
$bt=1.34;
break;
case 5:
$bt=1.32;
break;
}
break;
case "30 000 $":
switch($den)
{
case 1:
$bt=1.50;
break;
case 2:
$bt=1.48;
break;
case 3:
$bt=1.46;
break;
case 4:
$bt=1.44;
break;
case 5:
$bt=1.42;
break;
}
break;
}
break;
}
|
| |
|
|
|
|
|
|
|
для: UdeeX
(20.03.2007 в 10:06)
| | В этом коде сложно проследить логику.
Что должно происходить, если $cena="75 000 $"? А если $cena="70 000$"? А если $st = 3? | |
|
|
|
|
|
|
|
для: UdeeX
(20.03.2007 в 10:06)
| | 1) Ну например вывести простейшие мат. законы =))) а для тех вариантов, где они не отрабатывают через условие сделать явное присваивание
switch($st)
{
case 1:
$bt = 0.90 - 0.02*$den
if ($den == 4) $bt = 0.81;
break;
case 2:
switch($cena)
{
case "50 000 $":
$bt = 2.53 - 0.03*$den;
if($den = 5) $bt=2.30;
break;
...
}
break;
....
}
|
2) попробовать организовать массив
$bts = array()
$bts[1][1] = 0.88
$bts[1][2] = 0.86
...
$bts[2]["50 000 $"][1] = 2.50;
$bts[2]["50 000 $"][2] = 2.47;
$bts[2]["50 000 $"][3] = 2.44;
$bts[2]["50 000 $"][4] = 2.41;
$bts[2]["50 000 $"][5] = 2.30;
...
|
и обращаться в элементу по
switch($st)
{
case 1:
$bt = $bts[1][$den]
break;
case 2:
$bt = $bts[2][$cena][$den];
break;
....
}
|
можно поиграться и вообще обращаться $bts[$st][$cena][$den]; но тут нун тада все равно проверку делать на спорных моментах... типа
if($st==1) $cena = "0";
ну и соответствующие элементы прописать $bts[1]["0"][1] = 0.88 - типа такого... | |
|
|
|
|
|
|
|
для: ZuArt
(20.03.2007 в 12:28)
| | О! Предлагаю такой вариант:
<?
$options = array('1/1/' => 0.88, '1/2/' => 0.86, '1/3/' => 0.84, '1/4/' => 0.81, '1/5/' => 0.80,
'2/1/50 000 $' =>2.50,'2/2/50 000 $' =>2.47,'2/3/50 000 $' =>2.44,'2/4/50 000 $' =>2.41,'2/5/50 000 $' =>2.30,....);
if(($bt = @$options["$st/$cena/$den"]) !== false)
echo $bt;
|
Кто короче? | |
|
|
|
|
|
|
|
для: Trianon
(20.03.2007 в 12:55)
| | =))))
плагиататор ;) | |
|
|
|
|
|
|
|
для: ZuArt
(20.03.2007 в 13:05)
| | Ах вот как?
И что же я потырил?
:)))) | |
|
|
|
|
|
|
|
для: Trianon
(20.03.2007 в 13:13)
| | самое дорогое ='(( - идейку... не... Идею... даже нее... ИДЕИЩУ!!!
;))) | |
|
|
|
|
|
|
|
для: Trianon
(20.03.2007 в 12:55)
| | Trianon огромное спасибо за помощь!!! | |
|
|
|
|
|
|
|
для: ZuArt
(20.03.2007 в 12:28)
| | ZuArt огромное спасибо за идею. Вы меня выручили!!! | |
|
|
|