How to multiply two numbers in a string

I have a string like "1X6TAB". Now I am applying some kind of regular expression to this line to remove "TAB" and replace "X" with "*", so my last line will be "1 * 6". The expected result is "6", but as a result I get "1 * 6".

The code:

Regexonlynumber("1X6TAB"); function Regexonlynumber($number){ $number = preg_replace("/[^0-9.X]/", '', $number); echo str_replace('X',"*",$number);die; } 
+7
php
source share
4 answers

It is better to use eval() , which will also be able to evaluate more complex expressions:

 Regexonlynumber("3X6-13TAB"); function Regexonlynumber($number){ $number = preg_replace("/[^0-9.X\-\+\/]/", '', $number); $str = str_replace('X',"*",$number); eval("\$result = {$str};"); echo $str . " = " . $result . "\n"; } 
+2
source share

Instead of str_replace() you can explode() its delimiter 'X' , then use array_product() .

 Regexonlynumber("1X6TAB"); function Regexonlynumber($number){ $number = preg_replace("/[^0-9.X]/", '', $number); echo array_product(explode('X', $number)); } 
+12
source share

You are almost there. Just add one more step for exploding and breeding, for example:

 <?php function Regexonlynumber($number){ $number = preg_replace("/[^0-9.X]/", '', $number); $arr = explode("X", $number); echo $arr[0]*$arr[1]; } Regexonlynumber("2X6TAB"); ?> 

Demo

You can even just do this:

 function Regexonlynumber($number){ $arr = explode("X", $number); echo $arr[0]*$arr[1]; } 

Demo

+3
source share

The Regexonlynumber () function helps you get the product of numbers from a string.

Array_product () function : - The array_product () function calculates and returns the product of the array.

str_split () Function: - The str_split () function splits a string into an array.

 <?php function Regexonlynumber($number){ $number = preg_replace("/[^0-9,.]/", "", $number); echo array_product(str_split($number)); } Regexonlynumber("1X6TAB"); ?> 
+2
source share

All Articles