|
| 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
| |
|
|