2010-08-17 10 views
44

Wie kann ich eine Zeichenfolge beim ersten Vorkommen von - (Minuszeichen) in zwei $ vars mit PHP aufteilen?

Ich habe gefunden, wie auf jedem "-" aber nicht nur auf dem ersten Auftreten zu teilen.

Beispiel:

this - is - line - of whatever - is - relevant 
$var1 = this 
$var2 = is - line - of whatever - is - relevant 

Hinweis, zog auch die erste "-".

Vielen Dank im Voraus für die Hilfe!

Antwort

29
$array = explode('-', 'some-string', 2); 

Dann könnten Sie $var1=$array[0] und $var2=$array[1] tun.

+0

Vielen Dank, ich habe gerade meine Frage mit mehr Anfragen bearbeitet, sorry. – Jimbo

+0

Dank Brad, das wird auch nützlich sein. Ich schätze deine Zeit. – Jimbo

103

Es ist sehr einfach, einen zusätzlichen Parameter um zu explode verwenden, die viele Menschen nicht erkennen, gibt es:

list($before, $after) = explode('-', $source, 2);

+1

Das ist cool. Also dann ich $ fixed_string = str_replace ("-", "", $ vorher); um die - loswerden? – Jimbo

+1

Nein, das erste '-' wird als Teil der 'explode()' Funktion entfernt. – staticsan

+1

Dies funktionierte perfekt für meine Bedürfnisse. Ich habe mich gefragt, ob ich, wenn ich eine $ Mitte hinzufüge, dann explodiere - Quelle 3 ?? Würde das funktionieren oder sollte ich array [x] wie von Brad erwähnt verwenden? – Jimbo

0

Hier ist, was Sie brauchen: mit list() mit explode():

list($var1, $var2) = explode(' - ', 'this - is - line - of whatever - is - relevant', 2); 

Beachten Sie die Räume um die "-" (Minuszeichen)

1

Sie strtok Funktion verwenden können:

$first = strtok($string, '-'); 
Verwandte Themen