Как извлечь числа из текстовой строки в PHP: 7 методов

Вот несколько методов, которые вы можете использовать в PHP для удаления всего, кроме числа, из текстовой строки:

Метод 1: регулярные выражения (preg_replace)

$text = "abc123def456";
$number = preg_replace("/[^0-9]/", "", $text);
echo $number; // Output: 123456

Метод 2: str_replace

$text = "abc123def456";
$number = str_replace(range('a', 'z'), '', $text);
echo $number; // Output: 123456

Метод 3. Фильтрация и объединение

$text = "abc123def456";
$filtered = array_filter(str_split($text), 'is_numeric');
$number = implode('', $filtered);
echo $number; // Output: 123456

Метод 4: ctype_digit и str_split

$text = "abc123def456";
$filtered = array_filter(str_split($text), 'ctype_digit');
$number = implode('', $filtered);
echo $number; // Output: 123456

Метод 5: регулярные выражения (preg_match_all)

$text = "abc123def456";
preg_match_all('!\d+!', $text, $matches);
$number = implode('', $matches[0]);
echo $number; // Output: 123456

Метод 6: цикл и is_numeric

$text = "abc123def456";
$number = '';
for ($i = 0; $i < strlen($text); $i++) {
    if (is_numeric($text[$i])) {
        $number .= $text[$i];
    }
}
echo $number; // Output: 123456

Метод 7: регулярные выражения (preg_replace_callback)

$text = "abc123def456";
$number = preg_replace_callback('/\D/', function($match) {
    return '';
}, $text);
echo $number; // Output: 123456