Как мне получить последнюю часть строки в PHP - PullRequest
7 голосов
/ 19 марта 2012

У меня есть много строк, которые следуют одному и тому же соглашению:

this.is.a.sample
this.is.another.sample.of.it
this.too

Что я хочу сделать, это выделить последнюю часть.Поэтому я хочу, чтобы «образец», или «это», или «слишком».

Каков наиболее эффективный способ для этого.Очевидно, что есть много способов сделать это, но какой из них лучше всего, который использует наименьшее количество ресурсов (ЦП и ОЗУ).

Ответы [ 6 ]

25 голосов
/ 19 марта 2012
$string = "this.is.another.sample.of.it";
$contents = explode('.', $string);

echo end($contents); // displays 'it'
2 голосов
/ 16 января 2018

Я понимаю, что этот вопрос с 2012 года, но ответы здесь все неэффективны.Для этого в PHP встроены строковые функции, вместо того, чтобы обходить строку и превращать ее в массив, а затем выбирать последний индекс, что является большой работой, чтобы сделать что-то довольно простое.

Следующий код получает последнее вхождение строки в строке:

strrchr($string, '.'); // Last occurrence of '.' within a string

Мы можем использовать это вместе с substr, который, по сути, прерывает строку на основе позиции.

$string = 'this.is.a.sample';
$last_section = substr($string, (strrchr($string, '-') + 1));
echo $last_section; // 'sample'

Обратите внимание на +1 в результате strrchr;это связано с тем, что strrchr возвращает индекс строки в строке (начиная с позиции 0), поэтому истинное значение 'position' всегда равно 1 символу.

2 голосов
/ 19 марта 2012

http://us3.php.net/strpos

$haystack = "this.is.another.sample.of.it"; 
$needle = "sample"; 
$string = substr( $haystack, strpos( $haystack, $needle ), strlen( $needle ) ); 
1 голос
/ 25 июля 2017

Просто сделай:

$string = "this.is.another.sample.of.it";
$parts = explode('.', $string);
$last = array_pop(parts);
0 голосов
/ 19 марта 2012
$string = "this.is.another.sample.of.it";
$result = explode('.', $string); // using explode function

print_r($result); // whole Array

даст вам

result[0]=>this;
result[1]=>is;
result[2]=>another;
result[3]=>sample;
result[4]=>of;
result[5]=>it;

Показать любой, который вы хотите (например, echo result[5];)

0 голосов
/ 19 марта 2012
$new_string = explode(".", "this.is.sparta");
$last_part = $new_string[count($new_string)-1];

echo $last_part;    // prints "sparta".
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...