более быстрый способ получить последний элемент из строки

#php

#php

Вопрос:

У меня есть строка, похожая на приведенную ниже:

 a_b_c_d_1
x_y_z_12
  

Теперь вы можете видеть, что последний элемент — это число.
Я хочу его извлечь.

Шаги, которым я обычно следовал, были:

 1. explode(string), and store in array
2. find length of array
3. get value at key (arrayLength)-1
  

Но я думаю, что должен быть быстрый и лучший способ сделать это. Итак, спрашиваю всех вас, замечательные ребята.

Как я могу достичь следующего?

Комментарии:

1. Вы можете использовать $v = explode(«_», $string); а затем echo end ($ v); сэкономит вам по крайней мере один шаг 😉

2. Что медленного в вашем методе?

3. Кроме того, вы хотите 2 или 12 для второго случая?

4. Мне действительно понравилось решение от @PENDO

Ответ №1:

Вы можете использовать strrpos, чтобы найти последнее вхождение строки внутри другой строки. Вы можете пропустить материал с инструкцией if, если ЗНАЕТЕ, что существует хотя бы одно вхождение _ , но вот безотказный подход:

 $last_start = strrpos($string, '_');
if($last_start !== false) {
  $last_field = substr($string, $last_start);
}else{
  $last_field = $string;
}
  

Ответ №2:

Попробуйте

 end(str_split($your_string))  
  

Ответ №3:

Попробуйте это : substr( strrchr($string,'_'),1);