Avatar billede mp82 Nybegynder
03. august 2004 - 12:40 Der er 13 kommentarer og
1 løsning

Splitte steng ved ,

Hej, jeg har en streng som ser sådan ud:
£1,£2,#3,£5,

Det jeg skal ende med, er i dette tilfælde 4 variabler som skal se sådan ud:
$var1=£1,
$var2=£2,
$var3=#3,
$var4=£5,
Avatar billede krydset Nybegynder
03. august 2004 - 12:58 #1
<?php
$string = "£1,£2,#3,£5,";
$var = explode("," ,$string);

foreach ($var as $val) {
    $var[] = $val;
}

echo $var[0]."<br>";
echo $var[1]."<br>";
echo $var[2]."<br>";
echo $var[3];


?>
Avatar billede coderdk Praktikant
03. august 2004 - 13:03 #2
Hvad med:

<?php

    $txt = "£1,£2,#3,£5,";
    preg_match_all( "/.*?,/s", $txt, $matches );   
    print_r( $matches[ 0 ] );
   
   
?>
Avatar billede mp82 Nybegynder
03. august 2004 - 13:03 #3
Smukt, dert virker.
Men hvad gør jeg så når der er et forskelligt antal variabler, her er den jo bundet til 4?
Avatar billede coderdk Praktikant
03. august 2004 - 13:05 #4
Både krydsets og min løsning virker ved et vilkårligt antal... Du skal bare selv tilgå dem med $var[789] eller $matches[0][789] (alt efter hvilken løsning du bruger).
Avatar billede mp82 Nybegynder
03. august 2004 - 13:06 #5
corderdk > Med dit forslag kommer den med dette:
Array ( [0] => £1, [1] => £2, [2] => #3, [3] => £5, ) 

- det var ikke helt det jeg skulle bruge
Avatar billede coderdk Praktikant
03. august 2004 - 13:07 #6
Uhm, krydset, din løsning er lidt underlig ;) Den er "dobbelt"... plus der er et tomt element i $vars[4] og $vars[9] ;) hehehe
Avatar billede coderdk Praktikant
03. august 2004 - 13:08 #7
mp82, jo det var det netop, se:

<?php

    $txt = "£1,£2,#3,£5,";
    preg_match_all( "/.*?,/s", $txt, $matches ); 
    $var = $matces[ 0 ];
    echo "$var[0]<br>";
    echo "$var[1]<br>";
    echo "$var[2]<br>";
    echo "$var[3]<br>";
   
?>
Avatar billede coderdk Praktikant
03. august 2004 - 13:09 #8
print_r skriver bare indholdet ud. Du har skrevet specifikt at du vil have , med i dine variable ;)
Avatar billede coderdk Praktikant
03. august 2004 - 13:11 #9
Men hvis du ikke vil have , med i variablen, så virker denne lige så godt:

<?php

    $txt = "£1,£2,#3,£5,";
    preg_match_all( "/(.*?),/s", $txt, $matches );
    $var = $matces[ 1 ];
    echo "$var[0]<br>";
    echo "$var[1]<br>";
    echo "$var[2]<br>";
    echo "$var[3]<br>";

?>
Avatar billede mp82 Nybegynder
03. august 2004 - 13:12 #10
Aha, klart - så kan krydset's løsning jo også sagtens fungere ...

Krydset > smid lige et svar så deler jeg pointene mellem jer.
Avatar billede krydset Nybegynder
03. august 2004 - 13:14 #11
<?php
$string = "£1,£2,#3,£5,";
$var = explode("," ,$string);

foreach ($var as $val) {
    echo $val."<br>";
}



?>
Avatar billede krydset Nybegynder
03. august 2004 - 13:14 #12
Der echoer den ud inde i foreach løkken hvis den skal det.
M
Avatar billede krydset Nybegynder
03. august 2004 - 13:14 #13
Nej tak vil ikke have point tag dem selv eller giv dem til en anden
Avatar billede mp82 Nybegynder
03. august 2004 - 13:16 #14
Krydset > Jeg har set lyset, så nu kan jeg komme videre.

Tak for hjælpen til jer begge.
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