Как вынуть только числа из строки PHP?

Предположим, у меня есть эта строка:

$string = "Hello! 123 How Are You? 456";

Я хочу установить переменную $int to $int = 123456;

как мне это сделать?

Пример 2:

$string = "12,456";

требуется:

$num = 12456;

спасибо!

4 ответов


правильным вариантом будет:

$string = "Hello! 123 How Are You? 456";
$int = intval(preg_replace('/[^0-9]+/', '', $string), 10);

вы можете использовать этот метод, чтобы выбрать только цифры, присутствующие в тексте

function returnDecimal($text) {
    $tmp = "";  
    for($text as $key => $val) {
      if($val >= 0 && $val <= 9){
         $tmp .= $val
      }
    }
    return $tmp;
}

использовать это регулярное выражение !\d!

<?php
$string = "Hello! 123 How Are You? 456";
preg_match_all('!\d!', $string, $matches);
echo (int)implode('',$matches[0]);

enter image description here


вы можете использовать следующие:

$array = [];

preg_match_all('/-?\d+(?:\.\d+)?+/', $string, $array);

где $string-введенная строка, а $array - каждое число (не цифра!, включая также отрицательные значения!) загружен и доступен для различных дополнительных операций.