Autor Zpráva
snake04
Profil *
Ahoj,
mam nekolik hodnot (vse typu string) a rad bych napsal podminku, ze pokud se bude z cele mnoziny lisit jen jedna jedina hodnota je podminka platna.

zapsal jsem to takto ale to se zda nefunguje (zkousel jsem i dvojity AND operator a operator OR ale porad to same)


if(parsedItems.history[i].typ == typ &parsedItems.history[i].subTyp == subTyp &parsedItems.history[i].okres == okres &
parsedItems.history[i].plochaod == plochaod &parsedItems.history[i].plochado == plochado &
parsedItems.history[i].prefix == prefix & parsedItems.history[i].operace == operace &
parsedItems.history[i].cenado == cenado & parsedItems.history[i].cenaod == cenaod )
{

console.log("Podminka je pravdiva, vsechny hodnoty jsou naprosto stejne");

}

Diky za kazdou radu
Joker
Profil
snake04:
& a && jsou úplně jiné operátory, pozor na to!

Pochopil jsem dotaz tak, že aby podmínka prošla, musejí být splněny úplně všechny dílčí podmínky, nebo všechny kromě jedné (libovolné).
To napsat jednou podmínkou by bylo složité, ale šlo by to třeba takhle:
$odlisnosti = 0;
if(parsedItems.history[i].typ != typ) $odlisnosti++;
if(parsedItems.history[i].subTyp != subTyp)  $odlisnosti++;
if(parsedItems.history[i].okres != okres)  $odlisnosti++;
if(parsedItems.history[i].plochaod != plochaod)  $odlisnosti++;
if(parsedItems.history[i].plochado != plochado)  $odlisnosti++;
if(parsedItems.history[i].prefix != prefix)  $odlisnosti++;
if(parsedItems.history[i].operace != operace)  $odlisnosti++;
if(parsedItems.history[i].cenado != cenado)  $odlisnosti++;
if(parsedItems.history[i].cenaod != cenaod )  $odlisnosti++;

if($odlisnosti < 2) {
  echo "Podmínka splněna!";
}
snake04
Profil *
Diky za radu , tohle reseni mne nenapadlo

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: