Получить первую строку перед разделителем? - PullRequest
6 голосов
/ 10 января 2012

У меня есть строки со следующей структурой:

7_string_12
7_string2_122
7_string3_1223

Как я могу получить строку перед вторым "_"?

Я хочу, чтобы мой окончательный результат был:

7_string
7_string2
7_string3

Я использую explode ('_', $ string) и объединяю первые два значения, но мой скрипт был очень медленным!

Ответы [ 3 ]

9 голосов
/ 10 января 2012
$str = '7_string_12';
echo substr($str,0,strrpos($str,'_'));

эхо

7_string

независимо от того, что находится в начале строки

1 голос
/ 10 января 2012
$s1 = '7_string_12';
echo substr($s1, 0, strpos($s1, '_', 2));
0 голосов
/ 10 января 2012

Если он всегда начинается с 7_, вы можете попробовать это:

$string = substr($text, 0, strpos($text, '_', 2));

strpos () ищет первый _, начиная с символа 3 (= s из строки).Затем вы используете substr (), чтобы выбрать всю строку, начиная с первого символа до символа, возвращаемого функцией strpos ().

...