Get numbers from string with PHP

Solution 1:

You can use regular expressions for this. The \d escape sequence will match all digits in the subject string.

For example:

<?php

function get_numerics ($str) {
    preg_match_all('/\d+/', $str, $matches);
    return $matches[0];
}

$one = 'foo bar 4 baz (5 qux quux)';
$two = 'bar baz 2 bar';
$three = 'qux bar 12 quux (3 foo)';
$four = 'foo baz 3 bar (13 quux foo)';

print_r(get_numerics($one));
print_r(get_numerics($two));
print_r(get_numerics($three));
print_r(get_numerics($four));

https://3v4l.org/DiDBL

Solution 2:

You can do:

$str = 'string that contains numbers';
preg_match_all('!\d+!', $str, $matches);
print_r($matches);