#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);