Toon posts:

[PHP] string opdelen in variabelen

Pagina: 1
Acties:
  • 48 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een string welke ik graag zou willen opdelen in variabelen, ik heb het geprobeerd met list en explode maar ik kreeg het niet voormekaar.

De string ziet er als volgt uit:
$string = groen groen groen groen groen groen

Telkens gescheiden door 8 spaties en soms meer.

Dit wil ik nu opdelen in 6 losse variabelen.
Het probleem waar ik tegen aanloop zijn de spaties.
Wie heeft een oplossing voor mijn probleem

  • wietco
  • Registratie: Augustus 2001
  • Nu online
Moet toch gewoon met explode(); kunnen?
code:
1
2
 $string = "groen groen groen";
 $vars = explode(" ",$string);

let er wel op dat $vars een array is

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

exploden op spatie, daarna de elementen ontdoen van onnodige spaties (hint)

[edit] hmm, dit gaat niet helemaal lukken lijkt me..
Probeer eens alle spaties te vervangen door 1 spatie

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • tomato
  • Registratie: November 1999
  • Niet online
thomaske: exploden op spatie, daarna de elementen ontdoen van onnodige spaties (hint)
[edit]

|:(
Connector: Zet voortaan je code tussen [ code] tags, dan kunnen we ook zien dat er meer spaties tussen staan (8>

Maar je zou het ook in een keer kunnen doen:
code:
1
$array = preg_split('/\s+/', $string);

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

Op woensdag 29 mei 2002 12:10 schreef thomaske het volgende:
exploden op spatie, daarna de elementen ontdoen van onnodige spaties (hint)
dit resulteert in een hoop elementen met alleen een spatie als waarde.. dus da's niet helemaa wat je wilt.. :)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Topicstarter
Ik heb het volgende gedaan.
code:
1
2
$vars = explode(" ",$string); 
echo $vars[0];

Maar nu wordt die hele string weer in één rij van de array gezet. De uitkomst weer exact hetzelfde als de string.

Dus ben ik nog steeds even ver.

  • wietco
  • Registratie: Augustus 2001
  • Nu online
Bij mij werkt het hoor probeer dit maar eens
code:
1
2
3
4
5
6
7
8
9
10
<?

$string = "groen groen groen";
$vars = explode(" ",$string);

while(list($key,$value) = each($vars)){
 echo $key.':'.$value.'<br>';
}

?>

Verwijderd

Topicstarter
Maar ik vul de string niet handmatig, zoals jij hebt gedaan.
Als ik nu je scriptje gebruikt dan krijg ik het volgende als uitkomst:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
0:groen
0:
0:
1:
2:
3:
4:
5:
6:
7:
8:
0:groen
0:
0:
1:
2:
3:
4:
5:
6:
7:
8:
0:groen
0:
0:
1:
2:
3:
4:
5:
6:
7:
8:
etc...
etc...

  • Dennis
  • Registratie: Februari 2001
  • Nu online
wietco:
Bij mij werkt het hoor probeer dit maar eens
Moeilijk hè lezen |:(

Verwijderd

Topicstarter
Moeilijk hè lezen
Wat bedoel je daar mee, ik laat mijn uitkomst toch zien.
Ik krijg iets heel anders.

  • wietco
  • Registratie: Augustus 2001
  • Nu online
Jeez man ik probeer hem gewoon te helpen en als dat niet lukt pecht ik heb het geprobeerd beter dan wat jij doet alleen een beetje domme opmerkingen maken over iemands fouten.

Verwijderd

Topicstarter
Op woensdag 29 mei 2002 12:33 schreef wietco het volgende:
Jeez man ik probeer hem gewoon te helpen en als dat niet lukt pecht ik heb het geprobeerd beter dan wat jij doet alleen een beetje domme opmerkingen maken over iemands fouten.
Weet je misschien wat er fout gaat bij mij?

  • Stubby
  • Registratie: Januari 2002
  • Laatst online: 20:58
Je zou een For loopje kunnen schrijven dat de string reduceert tot eentje met maar 1 spatie tussen de woorden, het is niet echt efficient, maar het zou moeten werken. Een andere oplossing zou zijn een regular expression, maar ik weet niet of explo0de regular expresions pakt. Nog iets anders wat me net weer te binnen schiet, ik heb ooit eens in C een programmatje geschreven dat woorden uit zinnen haalde, daar gebruikte ik dan strtok (string tokenizer) voor, ook dat zou je topch nog kunnen proberen?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Nog een optie....
PHP:
1
<?$str="groen        groen        groen        groen        groen        groen";$n = sscanf($str,"%s %s %s %s %s %s", &amp;$id[], &amp;$id[], &amp;$id[], &amp;$id[], &amp;$id[], &amp;$id[]);print_r($id);?>

Programmer - an organism that turns coffee into software.


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op woensdag 29 mei 2002 12:44 schreef WinME het volgende:
Je zou een For loopje kunnen schrijven dat de string reduceert tot eentje met maar 1 spatie tussen de woorden, het is niet echt efficient, maar het zou moeten werken. Een andere oplossing zou zijn een regular expression, maar ik weet niet of explo0de regular expresions pakt. Nog iets anders wat me net weer te binnen schiet, ik heb ooit eens in C een programmatje geschreven dat woorden uit zinnen haalde, daar gebruikte ik dan strtok (string tokenizer) voor, ook dat zou je topch nog kunnen proberen?
Zie split
of
preg_split (POST van tomato ? )

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
Dit is mijn uitkomst op het scherm.
code:
1
2
3
4
Array ( [0] => groen [1] => [2] => [3] => [4] => [5] => )
Array ( [0] => [1] => [2] => [3] => [4] => [5] => ) 
Array ( [0] => [1] => [2] => [3] => [4] => [5] => ) 
Array ( [0] => groen [1] => [2] => [3] => [4] => [5] => )

Nog niet echt goed geloof ik

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

|:( Lees dan!
tomato:
code:
1
$array = preg_split('/\s+/', $string);

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Antwoord is gegeven, we blijven niet dezelfde dingen herhalen.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR

Pagina: 1

Dit topic is gesloten.