explode fast inte

PHP

3 svar · 341 visningar · startad av drew

Medlem sedan mars 2007845 inlägg
Trådstart#1

Jag har en sträng.

Det "här är en" sträng

Jag ska dela upp den i en array. Jag har försökt komma på något smart med explode() men det känns inte som den rätta vägen.

Arrayen ska se ut så här

[0] => 'Det',
[1] => 'här är en',
[2] => 'sträng',

Om citationstecknen från det i mitten kommer med eller inte spelar ingen roll dom kan jag trimma bort sen.

Det ska också kunna vara hur många delar som helst eller bara en. Det är inte säkert att det finns några delar med citationstecken eller så är dom "Det här är en sträng" så det bara blir en sträng i arrayen.

Det jag vill använda är nog preg_match(), men jag kan inte komma på hur.

Någon som vet?

Medlem sedan apr. 2008137 inlägg
#2

Du vill alltså splitta på "? Eller vill du splitta på varje ord, utom när citattecken innesluter dom?
Dvs, om meningen är

Det "här är en" längre sträng

Ska resultatet då bli

[0] => 'Det',
[1] => 'här är en',
[2] => 'längre sträng'

eller

[0] => 'Det',
[1] => 'här är en',
[2] => 'längre',
[3] => 'sträng'

Medlem sedan apr. 2008137 inlägg
#3

Om det är det första alternativet fixar du det enkelt med explode('"', $string).
Om det är det senare alternativet blir det lite klurigare. Tänker inte ge mig på en lösning i onödan.

Medlem sedan mars 2007845 inlägg
#4

Det är det senare alternativet

Det "här är en" längre sträng

ska bli

[0] => 'Det',
[1] => 'här är en',
[2] => 'längre',
[3] => 'sträng'

Jag använder explode(' ', $string); nu. Sånt som är inom citationstecken ska ligga som ett ord i arrayen.

260 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)