Как вытащить число из строки в php?

Пользователь

от rodger.botsford , в категории: PHP , год назад

Как вытащить число из строки в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dayna , год назад

@rodger.botsford 

В PHP для извлечения числа из строки можно использовать регулярное выражение или встроенные функции для обработки строк.

  1. Использование регулярных выражений:


Функция preg_match() позволяет найти первое вхождение регулярного выражения в строке и сохранить найденное значение в массив.


Например, чтобы извлечь число из строки, можно использовать следующий код:

1
2
3
4
$string = "Возраст: 25 лет";
preg_match('/d+/', $string, $match);
$age = $match[0];
echo $age; // Выводит 25


В этом примере регулярное выражение d+ соответствует одному или более цифровому символу. Найденное значение сохраняется в массив $match, и мы получаем доступ к нему через индекс [0].

  1. Использование встроенных функций:


Если число находится в начале строки, можно использовать функцию intval() для преобразования первого найденного числа в целое число.


Например:

1
2
3
$string = "25 лет";
$age = intval($string);
echo $age; // Выводит 25


Если число находится в середине или в конце строки, можно использовать функцию filter_var() с флагом FILTER_SANITIZE_NUMBER_INT, чтобы удалить все символы, кроме цифр, и затем использовать intval() для преобразования полученной строки в целое число.


Например:

1
2
3
4
$string = "Возраст: 25 лет";
$age = filter_var($string, FILTER_SANITIZE_NUMBER_INT);
$age = intval($age);
echo $age; // Выводит 25


Пользователь

от alisa.bahringer , 3 дня назад

@rodger.botsford 

Дополнительно хочу отметить, что вы также можете использовать функции preg_replace() или str_replace() для удаления всех символов, кроме цифр, из строки и затем преобразовать полученную строку в число.


Например, с использованием preg_replace():

1
2
3
4
$string = "Возраст: 25 лет";
$age = preg_replace('/D/', '', $string); // Удаляем все нецифровые символы
$age = intval($age);
echo $age; // Выводит 25


Или с использованием str_replace():

1
2
3
4
$string = "Возраст: 25 лет";
$age = str_replace(range(0, 9), '', $string); // Удаляем все нецифровые символы
$age = intval($age);
echo $age; // Выводит 25


Эти методы также позволяют извлечь число из строки в PHP.