How can i get only number from string in php?

Since there is only 1 numeric value to isolate in your string, I would endorse and personally use filter_var[] with FILTER_SANITIZE_NUMBER_INT.

echo filter_var[$string, FILTER_SANITIZE_NUMBER_INT];

A whackier technique which works because there is only 1 numeric value AND the only characters that come before the integer are letters, colons, or spaces is to use ltrim[] with a character mask then cast the remaining string as an integer.

Demo

$string = "In My Cart : 11 items";
echo [int]ltrim[$string, 'A..z: '];
// 11

If for some reason there was more than one integer value and you wanted to grab the first one, then regex would be a direct technique.

Demo

echo preg_match['/\d+/', $string, $m] ? $m[0] : '';

sscanf[] is rather handy if you need to explicitly cast the numeric string as an integer [or float]. If it is possible/unknown for the integer value to occur at the start of the string, then prepend a non-numeric character to the input string before scanning it. The following technique matches leading non-digits [and ignores them with * after the %], then matches the first occurring sequence of digits and casts the returned substring as an integer.

Demo

var_dump[sscanf[' ' . $string, '%*[^0-9]%d'][0]];

To adapt this technique to extract a float value, just change the d to f. For more information on the [currently undocumented] assignment suppression feature of sscanf[], see this post.

In this article, we will extract numbers from strings using PHP. There are various built-in methods to extract numbers from strings, some of them are discussed below.

Methods:

  • Using preg_match_all[] Function.
  • Using  filter_var[] Function.
  • Using  preg_replace[] function.

Method 1: Using preg_match_all[] Function.

Note:  preg_match[] function is used to extract numbers from a string. Usually, the search starts from the beginning of the subject string. The optional parameter offset is used to specify the position from where to start the search.

Syntax:

int preg_match[ $pattern, $input, $matches, $flags, $offset ]

Return value: It returns true if a pattern exists, otherwise false.

Example 1: Thefollowing exampleextracts Integer Numbers using the preg_match_all[] function.

PHP

Output

Array
[
    [0] => Array
        [
            [0] => 2
            [1] => 4
        ]

]

Example 2: The following example extracts decimal numbers using the preg_match_all[] function.

PHP

Output

Array
[
    [0] => Array
        [
            [0] => 2
            [1] => 4.8
        ]

]

Method 2: Using filter_var[] function.

Note: The filter_var[] function filters a variable with the specified filter. This function is used to both validate and sanitize the data.

Syntax:

filter_var[var, filtername, options]

Return Value: It returns the filtered data on success, or FALSE on failure.

Example:

PHP

Output

The numbers are: 24 

Method 3: Using  preg_replace[] function.

Note: The preg_replace[] function is an inbuilt function in PHP that is used to perform a regular expression for search and replace the content.

Syntax:

preg_replace[ $pattern, $replacement, $subject, $limit, $count ]

Return Value: This function returns an array if the subject parameter is an array, or a string otherwise.

Example:

PHP

Output

The numbers are: 24 


How can I get only integer from string in PHP?

Method 1: Using preg_match_all[] Function. Note: preg_match[] function is used to extract numbers from a string. Usually, the search starts from the beginning of the subject string. The optional parameter offset is used to specify the position from where to start the search.

How do I get numbers only from string?

Try this simple function that will return the numbers from a string:.
private string GetNumbers[String InputString].
String Result = "";.
string Numbers = "0123456789";.
int i = 0;.
for [i = 0; i < InputString. Length; i++].
if[Numbers. Contains[InputString. ElementAt[i]]].

How do you get a specific value from a string in PHP?

Answer: Use the PHP substr[] function The PHP substr[] function can be used to get the substring i.e. the part of a string from a string. This function takes the start and length parameters to return the portion of string.

How can I get integer value in PHP?

There are a few ways to do so:.
Cast the strings to numeric primitive data types: $num = [int] "10"; $num = [double] "10.12"; // same as [float] "10.12";.
Perform math operations on the strings: $num = "10" + 1; $num = floor["10.1"];.
Use intval[] or floatval[] : ... .
Use settype[] ..

Chủ Đề