|
| if en hel masse Fra : Lasse Hedegaard |
Dato : 14-09-03 23:46 |
|
Hvis jeg vil tjekke om en streng enten er abc, abd, abe (osv) hvordan
gør jeg det så smartest, når der er tale om MANGE "tjeks".
Umiddelbart kan jeg jo lave en if, elseif - og derudaf - men er der
ikke en smartere måde?
Jeg har fx. 5 kategorier, og jeg skal definere en variabel ud fra
hvilken kategori en anden variabel tilhører.
Altså hvis $foo er abc, abc, abe osv. - så skal $bar sættes til
kategori 1, hvis $foo er abf, abg osv. - så skal $bar sættes til
kategori 2 osv.
Skal jeg lave noget array-sjask? Hvordan?
Venligst,
Lasse Hedegaard
--
http://www.simlock.dk/
- også Siemens M55, S55, C55 samt SonyEricsson T610
| |
Anders Thorsen Holm (15-09-2003)
| Kommentar Fra : Anders Thorsen Holm |
Dato : 15-09-03 00:04 |
|
Subject: Re: if en hel masse
From: Anders Thorsen Holm <zoolook@daimi.au.dkx>
Newsgroups: dk.edb.internet.webdesign.serverside.php
Lasse Hedegaard wrote:
> Hvis jeg vil tjekke om en streng enten er abc, abd, abe (osv)
> hvordan gør jeg det så smartest, når der er tale om MANGE "tjeks".
Det lyder som om du skal have fat i regulære udtryk.
< http://dk.php.net/manual/en/function.preg-match.php>
< http://dk.php.net/manual/en/pcre.pattern.syntax.php>
> Altså hvis $foo er abc, abc, abe osv. - så skal $bar sættes til
> kategori 1, hvis $foo er abf, abg osv. - så skal $bar sættes til
> kategori 2 osv.
Måske noget i den her stil:
/* matcher "abc", "abd", "abe" */
if (preg_match("/^(ab)[c-e]$/i",$foo)) {
$bar = "kategori 1";
}
/* matcher "abf", "abg", "abh" */
else if (preg_match("/^(ab)[f-h]$/i",$foo)) {
$bar = "kategori 2";
}
/* matcher "abi", "abj", "abk" */
else if (preg_match("/^(ab)[i-k]$/i",$foo])) {
$bar = "kategori 3";
}
Den kan sikkert gøres mere effektivt, i så fald skal du nok høre fra
andre i gruppen.
--
Anders Thorsen Holm | http://www.daimi.au.dk/~zoolook/
Overvejer du at købe en DVD-afspiller? Så hold dig fra Fona!
Læs hvorfor: http://www.daimi.au.dk/~zoolook/fona/
| |
Lasse Hedegaard (15-09-2003)
| Kommentar Fra : Lasse Hedegaard |
Dato : 15-09-03 00:10 |
|
Anders Thorsen Holm skrev:
>/* matcher "abc", "abd", "abe" */
>if (preg_match("/^(ab)[c-e]$/i",$foo)) {
> $bar = "kategori 1";
>}
>/* matcher "abf", "abg", "abh" */
>else if (preg_match("/^(ab)[f-h]$/i",$foo)) {
> $bar = "kategori 2";
>}
>/* matcher "abi", "abj", "abk" */
>else if (preg_match("/^(ab)[i-k]$/i",$foo])) {
> $bar = "kategori 3";
Nu var abc, abd osv. blot eksempler.
I kategorierne kunne disse være:
hest, abe, ko (= dyr)
rød, blå, gul (= farver)
Jeg mener jeg har set noget array-sjask til sådan noget - men hvordan?
Venligst,
Lasse Hedegaard
--
http://www.simlock.dk/
- også Siemens M55, S55, C55 samt SonyEricsson T610
| |
Peter Brodersen (15-09-2003)
| Kommentar Fra : Peter Brodersen |
Dato : 15-09-03 00:17 |
|
On Mon, 15 Sep 2003 01:09:35 +0200, Lasse Hedegaard <laxxe@nospam.dk>
wrote:
>Jeg mener jeg har set noget array-sjask til sådan noget - men hvordan?
in_array(), måske?
<?php
$input = "gul";
$dyr = array("hest","abe","ko");
$farver = array("rød", "blå", "gul");
if (in_array($input, $farver)) {
$bar = "kategori 1";
}
?>
Alternativt kan du bruge switch, fx:
<?php
switch($input) {
case "rød":
case "gul":
case "blå":
$bar = "kategori 1";
break;
case "hest":
case "abe":
case "ko":
$bar = "kategori 2";
break;
}
?>
--
- Peter Brodersen
Ugens sprogtip: PHP (og ikke PhP)
| |
Anders Thorsen Holm (15-09-2003)
| Kommentar Fra : Anders Thorsen Holm |
Dato : 15-09-03 00:16 |
|
Lasse Hedegaard wrote:
> Nu var abc, abd osv. blot eksempler.
> I kategorierne kunne disse være:
> hest, abe, ko (= dyr)
> rød, blå, gul (= farver)
Åh, det fremgik jo så absolut ikke af dit indlæg. Jeg troede, der var
tale om en fortløbende, alfabetisk sekvens.
> Jeg mener jeg har set noget array-sjask til sådan noget - men
> hvordan?
$dyr = array("hest","abe","ko");
$farver = array("rød","blå","gul");
if (in_array($foo, $dyr)) { $bar = "kategori 1"; }
else (in_array($foo, $farver)) { $bar = "kategori 2"; }
< http://dk.php.net/manual/en/function.in-array.php>
--
Anders Thorsen Holm | http://www.daimi.au.dk/~zoolook/
Overvejer du at købe en DVD-afspiller? Så hold dig fra Fona!
Læs hvorfor: http://www.daimi.au.dk/~zoolook/fona/
| |
Lasse Hedegaard (15-09-2003)
| Kommentar Fra : Lasse Hedegaard |
Dato : 15-09-03 11:03 |
| | |
|
|