Avatar billede nomak Nybegynder
20. maj 2003 - 18:51 Der er 13 kommentarer og
1 løsning

explode en streng og derefter adde en char til samtlige værdier

hejsa jeg har en sql streng jeg splitter op med
$array = explode(",", $row[flags]);

stregen skal splittes ved hvert komma, men problemet ligget i explode også fjerne kommaerne er der en måde at adde disse kommaer igen til hver eneste værdi i det nye array ?.. eller findes der en function som kan cutte strengen EFTER kommaet og dermed bevare det?
Avatar billede fangel Nybegynder
20. maj 2003 - 18:57 #1
<?php
$str = "hej,med,dig";

$arr = explode(",",$str);
var $ny_str;
foreach($arr as $tmp_str){
  $ny_str .= "," . $tmp_str;
}

echo $ny_str;
?>

Morten
Avatar billede nomak Nybegynder
20. maj 2003 - 19:03 #2
hmm dea_pg jeg får en parse error ud af det der unexpected T_VAR der hvor du sætter den nye variabel
Avatar billede fangel Nybegynder
20. maj 2003 - 19:17 #3
så skriv

$ny_str = "";

Morten
Avatar billede martinbk Nybegynder
20. maj 2003 - 19:41 #4
hmm prøv det lige selv.. det eneste jeg får ud af det er
,hej,hej,med,hej,med,dig

det jeg ville have ud af det er et array der indeholder
$ny_str[0]: hej,
$ny_str[1]: med,
$ny_str[2]: dig,
Avatar billede fangel Nybegynder
20. maj 2003 - 20:09 #5
nå... kunne du bare have sagt...

<?php
$str = "hej,med,dig";

$arr = explode(",",$str);
$ny_str = new array();
foreach($arr as $tmp_str){
  $ny_str[] = $tmp_str . ",";
}

print_r $ny_str;
?>
Avatar billede martinbk Nybegynder
20. maj 2003 - 20:14 #6
nomak skrev: er der en måde at adde disse kommaer igen til hver eneste værdi i det nye array
Avatar billede martinbk Nybegynder
20. maj 2003 - 20:19 #7
Parse error: parse error, unexpected T_ARRAY, expecting T_STRING or T_VARIABLE or '$'
Avatar billede _darkstar_ Nybegynder
20. maj 2003 - 20:20 #8
Hmmm.... der er vidst nogen der ikke kender implode...

http://www.php.net/manual/en/function.implode.php

Den gør det som du spørger efter.

Ellers - hvis du virkelig *vil* have kommaerne med i delstrengene, så brug denne her:

http://www.php.net/manual/en/function.split.php

med en lookahead-assertion:

$array = preg_split ('/(?=,)/', $strengen_der_skal_splittes);

...det er dog ikke testet.

Se http://www.php.net/manual/en/function.preg-split.php
Avatar billede _darkstar_ Nybegynder
20. maj 2003 - 20:20 #9
Ups. Den midterste reference skulle ikke have været der.
Avatar billede fangel Nybegynder
20. maj 2003 - 20:28 #10
_darkstar_ => du har nok ret i at det er det han skal bruge det til... men man ved jo aldrig... ;)

nu også testet:

---
<?php

$str = "hej,med,dig";

$arr = explode(",",$str);
$ny_str = array();
foreach($arr as $tmp_str){
  $ny_str[] = $tmp_str . ",";
}

// nu har du dit array... så viser vi det stolt frem for alle:
foreach($ny_str AS $key => $value){
  echo "\$ny_str[$key] = $value<br>";
}

?>
---

Morten
Avatar billede martinbk Nybegynder
20. maj 2003 - 20:30 #11
lookahead-ahvafor en fisk darkstar kan du give mig et eks. jeg har en streng

noget alla
$str = "jeg,tester,lige,det,her,"
som jeg gerne vil have splittet op til
jeg,
tester,
lige,
det,
her,
og smidt i et array..
Avatar billede martinbk Nybegynder
20. maj 2003 - 20:36 #12
ligemeget fandt ud af det i en kombination
Avatar billede _darkstar_ Nybegynder
20. maj 2003 - 20:37 #13
Prøv at skifte implode-funktionen ud med

$array = preg_split ('/(?=,)/', $strengen_der_skal_splittes);

som jeg skrev ovenfor.
Avatar billede _darkstar_ Nybegynder
20. maj 2003 - 20:37 #14
Ups igen. implode => explode.
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