[php] vervangen voor dit

Pagina: 1
Acties:

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
Ik ben op zoek naar een vervanging voor het volgende, er moet toch een of andere fuctie voor zijn die ervoor zorgt dat ik niet alles hoef uit te schrijven :?
PHP:
1
<?if ($een==$twee || $een==$twee || $een==$drie......){echo "error";die;}?>

Ik wil dus een stuk of 10 variabele kijken of ze wel verschillend zijn. Maar als ik het helemaal uit zou moeten schrijven ben ik wel ff bezig, en ik denk dat er wel een fuctie moet zijn die kan kijken of die variabelen van mijn uniek zijn.

...


  • Expander
  • Registratie: Februari 2001
  • Niet online
switch()?

Expanding the inexpandable


  • tomato
  • Registratie: November 1999
  • Niet online
Wat wil je precies?
code:
1
2
3
4
5
6
7
8
9
10
11
1 == 2
OR
1 == 3
OR
1 == 4
OR
2 == 3
OR
2 == 4
OR
3 == 4

of
code:
1
2
3
4
5
1 == 2
OR
1 == 3
OR
1 == 4

:?

Daarnaast zal vrijwel zeker de oplossing voor jou liggen in het gebruik van gestructureerde datatypen als arrays of structs. Het gebruik van variabelen met de namen 'een', 'twee' en 'drie' is vrijwel nooit een goed idee.

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
Op zondag 28 april 2002 01:36 schreef tomato het volgende:
Wat wil je precies?
code:
1
2
3
4
5
6
7
8
9
10
11
1 == 2
OR
1 == 3
OR
1 == 4
OR
2 == 3
OR
2 == 4
OR
3 == 4
Dit is wat ik bedoel.
Ik gebruik dit voor een form waarin mensen een stuk of 10 dingen (variabelen) in kunnen vullen. Maar die dingen (variabelen) moeten wel verschillend van elkaar zijn.

...


  • tomato
  • Registratie: November 1999
  • Niet online
Zoals ik al dacht wil je arrays gebruiken.

In je HTML code krijg je iets dergelijks:
code:
1
2
3
4
Veld 1: <input type="text" name="veld[]" />
Veld 1: <input type="text" name="veld[]" />
Veld 1: <input type="text" name="veld[]" />
Veld 1: <input type="text" name="veld[]" />

Vervolgens in je PHP code:
PHP:
1
<?$values = array();while (list($k, $v) = each($_POST['veld'])) {   if (defined($values[$v])) {      echo 'error';      die;   } else {      $values[$v] = true;   }}?>

Als je geen externe array wilt gebruiken ($value) om al je waarden (tijdelijk) in op te slaan kun je het ook nog op tig andere manieren doen.

Misschien is er zelfs nog iets makkelijkers te knutselen met een of andere built-in PHP array functie...

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

PHP:
1
<?$values = array();foreach($_POST['veld']) as $value) {       if(isset($values[$value]))     {             echo 'error';       die;       }     else     {             $values[$value] = true;       }}?>

Is dan nog ietsje duidelijker imho? :)
Volgens mij doet de functie defined() ook iets anders dan jij bedoelt tomato ;)

  • tomato
  • Registratie: November 1999
  • Niet online
ACM: Volgens mij doet de functie defined() ook iets anders dan jij bedoelt tomato ;)
Klopt, zat een beetje aan Perl te denken :z

Maar het ging om het idee ;)

Verwijderd

PHP:
1
<?if(count($a) != count(array_unique($a))){  echo "error";}?>

:) ?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 28 april 2002 18:33 schreef zellufs het volgende:
:) ?
Mist een $ en jouw oplossing heeft als nadeel dat je niet kan zeggen welke er dubbel is ;)

Verwijderd

heb je gelijk in, maar volgens mij hoefde dat ook niet van de topicstarter, in zijn stukje code wat hij eerst had was dat namelijk ook niet het geval...
Pagina: 1