Get numbers from string with PHP

111
January 14, 2021, at 3:00 PM

I have strings:

$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)';

How can I find the numeric digits in these strings?

Maybe with function:

function numbers($string){
    // ???
    $first = ?;
    $second = ?;
}

For example:

function numbers($one){
    // ???
    $first = 4;
    $second = 5;
}
function numbers($two){
    // ???
    $first = 2;
    $second = NULL;
}

Best way for this maybe is regex, but how can I use this for my example? Maybe without regex?

Answer 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

Answer 2

You can do:

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

Here's my attempt WITHOUT a regular expression

function getNumbers($str) {
    $result = array();
    // Check each character.
    for($i = 0, $len = strlen($str); $i < $len; $i++) {
        if(is_numeric($str[$i])) {
            $result[] = $str[$i];
        }
    }
    return $result;
}
$one = 'one two 4 three (5 four five)';
$two = 'one two 2 three';
$three =  'one two 12 three (3 four)';
$four = 'one two 3 three (13 four five)';
var_dump(getNumbers($one));
var_dump(getNumbers($two));
var_dump(getNumbers($three));
var_dump(getNumbers($four));

// Output:

array(2) {
  [0]=>
  string(1) "4"
  [1]=>
  string(1) "5"
}
array(1) {
  [0]=>
  string(1) "2"
}
array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "3"
  [1]=>
  string(1) "1"
  [2]=>
  string(1) "3"
}
READ ALSO
&ldquo;Duplicate entry&rdquo; even though the column has UNIQUE constraint

“Duplicate entry” even though the column has UNIQUE constraint

I'm trying to drop some columns which I'm no longer using in my tableI've got a single column with a UNIQUE constraint

96
Run multiple processes in single celery worker on a machine with single CPU

Run multiple processes in single celery worker on a machine with single CPU

I am researching on Celery as background worker for my flask applicationThe application is hosted on a shared linux server (I am not very sure what this means) on Linode platform

83
Import css file from same non-root directory

Import css file from same non-root directory

I would like to distribute my css between multiple files to remain more organizedBut I want to only have to import my main

92
kotlin Converts bytearray data received through communication into string

kotlin Converts bytearray data received through communication into string

Converts bytearray data received through communication into string

124