Avatar billede mrfunder Nybegynder
22. oktober 2009 - 20:16 Der er 7 kommentarer og
1 løsning

Hjælp til split funktion

Hej alle!

Jeg har en streng der som indikerer om en funktion er valgt eller ej. Man kan vælge mellem funktionerne 1-3 og skal vælge mindst én. Såfremt man har valgt mere end én funktion, bliver funktions id'et delt op med et komma. Strengen ser således ud hvis man har valgt alle [1,2,3], men kunne lige så godt se sådan ud [2] såfremt man kun har valgt funktionen 2.

Er der nogen som kan hjælpe mig med en funktion der kan tjekke hvad strengen indeholder?

Indeholder strengen 2 skal en variabel med navnet 2 blive sat til true, indeholder den 1, 2 og 3 skal der laves 3 variabler som alle er true.

Jeg håber, at jeg har formuleret mig selv korrekt, og at der er nogen som vil give en hånd - jeg har ingen idé om hvordan jeg laver sådan en funktion :~)

På forhånd tak
Avatar billede arne_v Ekspert
22. oktober 2009 - 20:26 #1
Måske noget a la:

$v[1] = false;
$v[2] = false;
$v[3] = false;
foreach(split(',', $input) as $itm) {
    $v[$itm] = true;
}
Avatar billede mrfunder Nybegynder
22. oktober 2009 - 20:36 #2
Hej Arne,

Hvordan tager jeg så højde for [ ] som også indgår i strengen?
Avatar billede arne_v Ekspert
22. oktober 2009 - 20:46 #3
$v[1] = false;
$v[2] = false;
$v[3] = false;
foreach(split(',', substr($input, 1, strlen($input)-2)) as $itm) {
    $v[$itm] = true;
}
Avatar billede mrfunder Nybegynder
22. oktober 2009 - 21:09 #4
mange tak arne :- ) smid et svar
Avatar billede arne_v Ekspert
22. oktober 2009 - 21:15 #5
kommer her
Avatar billede arne_v Ekspert
22. oktober 2009 - 21:16 #6
split er vist iøvrigt deprecated i PHP 5.3.

Men så må man finde på en anden måde at save den streng over ved hvert komma.
Avatar billede repox Seniormester
22. oktober 2009 - 21:57 #7
Deprecated funktionalitet kan findes her:
http://dk2.php.net/manual/en/migration53.deprecated.php

Den nye måde at gøre det på er med preg_split()
$data = preg_split("/,/", $str);
Avatar billede dkfire Nybegynder
23. oktober 2009 - 11:12 #8
Implode og explode er de to funktioner som skal bruges fremad.

http://dk.php.net/manual/en/function.explode.php
http://dk.php.net/manual/en/function.implode.php

Explode skal selvfølgelig bruges i stedet for split.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester