/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
streng til array (lidt kompliceret)
Fra : Brian Emilius


Dato : 24-02-04 08:14

Hej NG

Jeg har tidligere stilt spørgsmålet om hvordan jeg får puttet en streng in i
et array, men mit problem er lidt mere kompliceret end som sådan. Jeg har en
streng der ser nogenlunde sådan her ud:

$streng = "04_01_02";

Denne streng skal puttes i et array, så det ser således ud:

array["04","04_01","04_01_02"];

Er det klart nok? Jeg håber, der er nogen, der kan hjælpe...

Venlig hilsen
Brian Emilius



 
 
Kim Schulz (24-02-2004)
Kommentar
Fra : Kim Schulz


Dato : 24-02-04 08:26

On Tue, 24 Feb 2004 08:14:12 +0100
"Brian Emilius" <brian@spam.emilius.dk> wrote:
> Hej NG
>
> Jeg har tidligere stilt spørgsmålet om hvordan jeg får puttet en
> streng in i et array, men mit problem er lidt mere kompliceret end som
> sådan. Jeg har en streng der ser nogenlunde sådan her ud:
>
> $streng = "04_01_02";
>
> Denne streng skal puttes i et array, så det ser således ud:
>
> array["04","04_01","04_01_02"];
>
> Er det klart nok? Jeg håber, der er nogen, der kan hjælpe...


$array = array(substr($streng,0,2),substr($streng,0,5),$streng);


--
Fund of Fundanemt - Join the User Group
http://www.fundausers.org | join #fnug @ irc.freenode.net

Brian Emilius (24-02-2004)
Kommentar
Fra : Brian Emilius


Dato : 24-02-04 08:35

"Kim Schulz" <kim@schulz.dk> skrev i en meddelelse
news:20040224082532.04a7b625@lifesuckz.nork.auc.dk...

> $array = array(substr($streng,0,2),substr($streng,0,5),$streng);

Ja, ok, men dur den også, hvis jeg ikke ved, hvor mange dele
strengen/arrayet består af?

Strengen kunne lige så godt se sådan ud:
$streng = "01_01_01_01";
og dette skulle afstedkomme et array, der ser sådan ud:
array["01","01_01","01_01_01","01_01_01_01"];

Venlig hilsen
Brian Emilius



Dennis Newel (24-02-2004)
Kommentar
Fra : Dennis Newel


Dato : 24-02-04 09:38

jeg ville nok gøre noget alä:

$arr = explode("_",$treng);
$join_str = "";
for($i=0;$i<count($arr);$i++) {
   $join_str .= $arr[$i];
   $join_str .= ((count($arr)-1)==$i)?"":"_";
   $array[] = $join_str;
}

Disclamer: dette kode er hverken testet eller gennemchecket - det vil
meget sandsynligt ikke virke ;)

./Dennis

Brian Emilius wrote:
> "Kim Schulz" <kim@schulz.dk> skrev i en meddelelse
> news:20040224082532.04a7b625@lifesuckz.nork.auc.dk...
>
>
>>$array = array(substr($streng,0,2),substr($streng,0,5),$streng);
>
>
> Ja, ok, men dur den også, hvis jeg ikke ved, hvor mange dele
> strengen/arrayet består af?
>
> Strengen kunne lige så godt se sådan ud:
> $streng = "01_01_01_01";
> og dette skulle afstedkomme et array, der ser sådan ud:
> array["01","01_01","01_01_01","01_01_01_01"];
>
> Venlig hilsen
> Brian Emilius
>
>

Jeppe Uhd (24-02-2004)
Kommentar
Fra : Jeppe Uhd


Dato : 24-02-04 12:10

Brian Emilius wrote:
> "Kim Schulz" <kim@schulz.dk> skrev i en meddelelse
> news:20040224082532.04a7b625@lifesuckz.nork.auc.dk...
>
>> $array = array(substr($streng,0,2),substr($streng,0,5),$streng);
>
> Ja, ok, men dur den også, hvis jeg ikke ved, hvor mange dele
> strengen/arrayet består af?
>
> Strengen kunne lige så godt se sådan ud:
> $streng = "01_01_01_01";
> og dette skulle afstedkomme et array, der ser sådan ud:
> array["01","01_01","01_01_01","01_01_01_01"];

$arr=explode("_",$streng);
$array=array();
for($i=0;$i<count($arr);$i++)
{
$array=array_merge($array,array(implode("_",array_slice($arr,0,$i+1))));
}

Virker i hvert fald med både "01_01_01_01" og "1_2_3_4_5"

MVH Jeppe Uhd - NX



Jeppe Uhd (24-02-2004)
Kommentar
Fra : Jeppe Uhd


Dato : 24-02-04 12:16

Jeppe Uhd wrote:
> Brian Emilius wrote:
>> "Kim Schulz" <kim@schulz.dk> skrev i en meddelelse
>> news:20040224082532.04a7b625@lifesuckz.nork.auc.dk...
>>
>>> $array = array(substr($streng,0,2),substr($streng,0,5),$streng);
>>
>> Ja, ok, men dur den også, hvis jeg ikke ved, hvor mange dele
>> strengen/arrayet består af?
>>
>> Strengen kunne lige så godt se sådan ud:
>> $streng = "01_01_01_01";
>> og dette skulle afstedkomme et array, der ser sådan ud:
>> array["01","01_01","01_01_01","01_01_01_01"];
>
> $arr=explode("_",$streng);
> $array=array();
> for($i=0;$i<count($arr);$i++)
> {
>
> $array=array_merge($array,array(implode("_",array_slice($arr,0,$i+1))));
> }

Og så lige lidt optimering af min egen kode

$arr=explode("_",$streng);
for($i=0;$i<count($arr);$i++)
{
$array[$i]=implode("_",array_slice($arr,0,$i+1));
}



Kim Schulz (24-02-2004)
Kommentar
Fra : Kim Schulz


Dato : 24-02-04 09:39

On Tue, 24 Feb 2004 08:35:15 +0100
"Brian Emilius" <brian@spam.emilius.dk> wrote:
> "Kim Schulz" <kim@schulz.dk> skrev i en meddelelse
> news:20040224082532.04a7b625@lifesuckz.nork.auc.dk...
>
> > $array = array(substr($streng,0,2),substr($streng,0,5),$streng);
>
> Ja, ok, men dur den også, hvis jeg ikke ved, hvor mange dele
> strengen/arrayet består af?
>
> Strengen kunne lige så godt se sådan ud:
> $streng = "01_01_01_01";
> og dette skulle afstedkomme et array, der ser sådan ud:
> array["01","01_01","01_01_01","01_01_01_01"];

noget ala dette måske:

$strlen= strlen($streng);
$x=3;
$array = array(substr($streng,0,3));
while($x<=$strlen){
   array_push($array, substr($streng,0,$x));
   $x=$x+3;
}


--
Fund of Fundanemt - Join the User Group
http://www.fundausers.org | join #fnug @ irc.freenode.net

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408934
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste