if php ??
 
mprose7 12. dec 2012 11:47:01 Pridružen od:
18. mar 2008
911 objav
293 39 6
#1

obstaja za tole kaksen bolj logicen zapis


if ($aZG == 'a1')
{
$aZG = '2';
$d20zg = $rd;
}
elseif ($aZG == 'a2')
{
$aZG = '0.5';
$d05zg = $rd;
}
if ($aSP == 'a1')
{
$aSP = '2';
$d20sp = $rd;
}
elseif ($aSP == 'a2')
{
$aSP = '0.5';
$d05sp = $rd;
}
if ($aLE == 'a1')
{
$aLE = '2';
$d20le = $rs;
}
elseif ($aLE == 'a2')
{
$aLE = '0.5';
$d05le = $rs;
}
if ($aDE == 'a1')
{
$aDE = '2';
$d20de = $rs;
}
elseif ($aDE == 'a2')
{
$aDE = '0.5';
$d05de = $rs;
}
všeč(0) ni všeč(0) spam(0)
Oprema stanovanj in izris 3d objektov na: Notranja oprema
Trgovina z lesnim hobi programom: Razrez iverala
 
s1l3 12. dec 2012 11:49:41 Pridružen od:
6. jun 2012
345 objav
320 60 1
#2

Poglej switch statment.


všeč(0) ni všeč(0) spam(0)
 
schtr4jh 12. dec 2012 11:54:20 Pridružen od:
24. nov 2008
402 objav
322 33 4
#3

$arrKeys = array("zg", "sp", "le", "de");

foreach ($arrKeys AS $key) {

if (isset($a[$key]))

if ($a[$key] == "a1") {

$a[$key] = 2; // enodimenzionalen array

$d[20][$key] = $rs; // dvodimenzionalen array

} else if ($a[$key] == "a2") {

$a[$key] = 0.5;

$d[0.5][$key] = $rs;

}

}



Vrednosti potem dobiš s klice $a["zg"] oziroma $d[20]["de"].


všeč(1) ni všeč(0) spam(0)
 
mprose7 12. dec 2012 12:03:18 Pridružen od:
18. mar 2008
911 objav
293 39 6
#4

je kaka razlika v hitrosti?

naenkrat pade do 500 podatkov...


všeč(0) ni všeč(0) spam(0)
Oprema stanovanj in izris 3d objektov na: Notranja oprema
Trgovina z lesnim hobi programom: Razrez iverala
 
schtr4jh 12. dec 2012 12:09:40 Pridružen od:
24. nov 2008
402 objav
322 33 4
#5

V performancu načeloma naj ne bi bilo razlike (k tvoji kodi je dodana samo vsebina $arrKeys, pomeni 8B).



Se mi pa zdi moja lažje nadgradljiva in bolje berljiva.


všeč(0) ni všeč(0) spam(0)
 
metallon 12. dec 2012 12:39:46 Pridružen od:
28. apr 2012
362 objav
326 70 8
#6

Načeloma je switch hitrejši od if.


všeč(0) ni všeč(0) spam(0)
 
kelvan 12. dec 2012 20:42:09 Pridružen od:
19. okt 2007
891 objav
658 122 26
#7

kaj pa če bi dal tele permutacije v bazo in bi vse skupaj rešil z enim selectom?


všeč(1) ni všeč(0) spam(0)
 
mprose7 13. dec 2012 10:08:37 Pridružen od:
18. mar 2008
911 objav
293 39 6
#8

switch ze, ampak mislim da zgoraj ne pride do izraza,

v bazo pa nimam namena dat...

hvala za odgovore


všeč(0) ni všeč(0) spam(0)
Oprema stanovanj in izris 3d objektov na: Notranja oprema
Trgovina z lesnim hobi programom: Razrez iverala
 
kelvan 13. dec 2012 11:56:44 Pridružen od:
19. okt 2007
891 objav
658 122 26
#9

če nočeš dajat v bazo, lahko nafilaš array :)


všeč(0) ni všeč(0) spam(0)
 
technolog 13. dec 2012 17:51:46 Pridružen od:
14. nov 2011
598 objav
768 300 22
#10

Evo, drop-in replacement, samo tole kodo pastaš namesto originalne in vse bo delalo.


$vars = array('ZG', 'SP', 'LE', 'DE');
foreach ($vars as $var) {
$name = 'a'.$var;
if ($$name == 'a1') {
$$name = '0.5';
${'d05'.strtolower($var)} = $rd;
} else if (${'a'.$var} == 'a1') {
$$name = '2';
${'d20'.strtolower($var)} = $rd;
}
}
všeč(4) ni všeč(1) spam(0)
Z linuxom že 7 let. Pro web development.
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se