Autor | Zpráva | ||
---|---|---|---|
huho Profil * |
#1 · Zasláno: 24. 4. 2007, 18:13:07
ako spravim podmienku ze
if ($a $c $d $e $f obsahuju vsetky 0,1,2,3,4) { echo "OK"; } teda ak budu cisla $a=0, $b=1, $c=2, $d=3, $e=4 -> OK 2 1 3 4 0 -> OK 1 1 2 3 4 -> ZLE viete niekto??som zufaly;(( diky moc |
||
loyza Profil |
#2 · Zasláno: 24. 4. 2007, 18:19:19
no nevim jestli je to to nejlepsi,nejrychlejsi reseni, ale delal bych to takhle:
|
||
Pavel Prochazka.zde.cz Profil * |
#3 · Zasláno: 24. 4. 2007, 18:28:17
zvyknul jsem si detal testy vzdy postupne.... vypadato prehledne....
if $a=0{ if $b=1{ if $c=2{ . . . } } } otazkou je zda je potreba takove testovani provadet, vzdy se najde lepsi reseni, jak kyzeneho cilu dosahnout jednoduseji.... ale to bych potreboval znat konkretni algoritmus..... |
||
huho Profil * |
#4 · Zasláno: 24. 4. 2007, 18:51:49
takze mam takto:
$a = 0; $b = 1; $c = 2; $d = 3; $e = 4; $arr=array($a,$c,$d,$e,$f); if(in_array($arr,0) && in_array($arr,1) && in_array($arr,2) && in_array($arr,3) && in_array($arr,4)) { echo "ok"; } else { echo "zle"; } a vypise: Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:Programmexampphtdocs\_programyPNO.php on line 14 zle takze to nejde preco? |
||
Anonymní Profil * |
#5 · Zasláno: 24. 4. 2007, 21:35:47
co takto kuknut na manual, 2 parameter caka nieco ine a to tvoju premennu $arr, mas to proste naopak
|
||
Timy Profil |
#6 · Zasláno: 24. 4. 2007, 21:47:15
Můžu vědět, v čem je lepší to pole? Proč to neudělat takto?
if($a==0 && $b==1 && $c==2 && $d==3 && $e==4) echo "jo"; else echo "ne"; |
||
anon Profil * |
#7 · Zasláno: 24. 4. 2007, 22:45:07
Trapko, ale ak bude 4 3 2 1 0 tak je tiez spravne ale nenapise to!!
Můžu vědět, v čem je lepší to pole? Proč to neudělat takto? if($a==0 && $b==1 && $c==2 && $d==3 && $e==4) echo "jo"; else echo "ne"; |
||
Timy Profil |
#8 · Zasláno: 24. 4. 2007, 22:57:53
anon
Ach tak, nepochopil jsem zadání, pardon. |
||
Honza Široký Profil |
#9 · Zasláno: 25. 4. 2007, 00:01:40
Nezkoušel jsem to, ale dělal bych to takhle:
$test = array ('0', '1', '2', '3', '4'); |
||
koudi Profil |
#10 · Zasláno: 25. 4. 2007, 00:19:40
Udělej si dvě pole, jedno na hodnoty co chceš, jedno na proměnný. Pak si projeď pole požadovaných hodnot (foreach). V každém kroku hledej v poli proměnných (in_array), jestli tam ta hodnota je. Pokud najdeš všechny, return true, pokud něco nenajdeš, tak false. Teda jestli sem to správně pochopil.
|
||
ronnie Profil |
#11 · Zasláno: 25. 4. 2007, 00:37:26 · Upravil/a: ronnie
Ok, tak kolik najdem řešení:)
|
||
loyza Profil |
#12 · Zasláno: 25. 4. 2007, 05:54:20
Jako řešení máme, i více, ale spíš by mě zajímalo, které z těchto řešení bude nejrychlejší. Které z těchto řešení bude nejlepčí. Subjektivně si myslím, že řešení Honzy Širokého bude fungovat asi nejrychleji, ale na druhou stranu si nejsem jistý, jak proběhne to porovnání $input == $test.
|
||
ronnie Profil |
#13 · Zasláno: 25. 4. 2007, 06:15:09
Všechny zmíněná řešení jsou rychlá;)
|
||
ronnie Profil |
#14 · Zasláno: 25. 4. 2007, 06:17:33
Z hlediska přehlednosti bude asi nejlepší řešení:
|
||
koudi Profil |
#15 · Zasláno: 25. 4. 2007, 17:37:01
Udělej si dvě pole, jedno na hodnoty co chceš, jedno na proměnný. Pak si projeď pole požadovaných hodnot (foreach). V každém kroku hledej v poli proměnných (in_array), jestli tam ta hodnota je. Pokud najdeš všechny, return true, pokud něco nenajdeš, tak false.
x !array_diff(array($a, $b, $c, $d, $e), range(0,4)) No jo, tady je prostě vidět ta propast mezi profesionálem a středně pokročilým amatérem...kruci :) |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0