Hallo allen,
Ik heb de volgende voorbeeld string:
De structuur van de strings is als volgt: Het eerste woord is de naam van de waarden die erachter staan en gescheiden met een , met achter de laatste waarde een;. Dit kan 1 of meerdere keren achter elkaar staan in 1 string.
Wat wil ik bereiken: $str_1 moet geupdate worden met de waarden van $str_2. In $str_2 staan de nieuwe waarden voor elk veld dat is veranderd. Het eindresultaat is te zien in $str_3.
Wat heb ik tot nu toe:
Met als output:
Uiteindelijk denk ik dat ik preg_replace() kan gebruiken. Maar ik heb preg nog steeds niet goed door (elke keer als je het nodig hebt zoek je een tut, maak je wat je wil en vergeet je het weer), dus probeer het stap voor stap.
Wie kan mij aub verder op weg helpen?
Alvast bedankt!
Groeten,
Robert
Ik heb de volgende voorbeeld string:
PHP:
1
2
3
4
5
| <?php $str_1 = 'Foo,1a,2b,3c;Schoenmaat,38,41,45,48;Bar,1,2,3,4;Kleur,Blauw,Oranje,Paars;Abc,A,B,D'; $str_2 = 'Kleur,Groen,Oranje,Paars,Zwart;Schoenmaat,36,40,45,48'; $str_1 = 'Foo,1a,2b,3c;Schoenmaat,36,40,45,48;Bar,1,2,3,4;Kleur,Oranje,Paars,Zwart;Abc,A,B,D'; ?> |
De structuur van de strings is als volgt: Het eerste woord is de naam van de waarden die erachter staan en gescheiden met een , met achter de laatste waarde een;. Dit kan 1 of meerdere keren achter elkaar staan in 1 string.
Wat wil ik bereiken: $str_1 moet geupdate worden met de waarden van $str_2. In $str_2 staan de nieuwe waarden voor elk veld dat is veranderd. Het eindresultaat is te zien in $str_3.
Wat heb ik tot nu toe:
PHP:
1
2
3
| <?php preg_match_all("/([A-Z]{1}[a-z]*,[_a-zA-Z0-9,]*\;?)*/", $str_1, $out); ?> |
Met als output:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| $out: Array ( [0] => Array ( [0] => Foo,1a,2b,3c;Schoenmaat,38,41,45,48;Bar,1,2,3,4;Kleur,Blauw,Oranje,Paars;Abc,A,B,D [1] => ) [1] => Array ( [0] => Abc,A,B,D [1] => ) ) |
Uiteindelijk denk ik dat ik preg_replace() kan gebruiken. Maar ik heb preg nog steeds niet goed door (elke keer als je het nodig hebt zoek je een tut, maak je wat je wil en vergeet je het weer), dus probeer het stap voor stap.
Wie kan mij aub verder op weg helpen?
Alvast bedankt!
Groeten,
Robert