如何将一个字符串中的 2 个数字与 PHP 中字符串之外的第 3 个数字相乘?

Posted

技术标签:

【中文标题】如何将一个字符串中的 2 个数字与 PHP 中字符串之外的第 3 个数字相乘?【英文标题】:How to multiplicate 2 numbers in one string with 3rd outside the string in PHP? 【发布时间】:2022-01-19 11:57:07 【问题描述】:

我想用字符串之外的公式计算字符串,有时我得到两个数字用空格分隔的字符串,我的公式只是计算字符串中的第一个数字。




$string = "225cm x 70cm";

$outputString = preg_replace('/[^0-9]/ ', ' ', $string);// output here is string(12) "225 70 "  

$inches = intval($outputString) * 0.39370; 
$inches_pre = round($inches  / 0.5) * 0.5; // output here is just 85 instead of string "85.5 27.5"

【问题讨论】:

【参考方案1】:

你可以使用

$string = "225cm x 70cm";
if (preg_match_all('/\d+(?:\.\d+)?/', $string, $m)) 
    $inches = implode(" ", array_map(function ($x)  return round(intval($x) * 0.39370  / 0.5) * 0.5; , $m[0]));
    echo $inches;

// => 85.5 27.5

请参阅php demo。

使用preg_match_all('/\d+(?:\.\d+)?/', $string, $m),您可以将所有数字提取到$m[0],然后在array_map 中处理每个数字,然后使用implode 将结果连接到一个字符串中。

【讨论】:

how can make them back in the sentence , like my strings is $string = "This is 225cm x70 cm coating" 怎么会变成 This is 85.5'' x 27.5'' 服装? @Bulgarian_power echo preg_replace_callback('/\d+(?:\.\d+)?/', function($m) return round(intval($m[0]) * 0.39370 / 0.5) * 0.5 . '"'; , $string);,见the PHP demo。 哇好!非常感谢!

以上是关于如何将一个字符串中的 2 个数字与 PHP 中字符串之外的第 3 个数字相乘?的主要内容,如果未能解决你的问题,请参考以下文章

php提取字符串中的数字

php提取字符串中的数字

如何将看起来像十六进制数字的字符串转换为php中的实际十六进制数字?

C语言中如何将数字变成字符串啊?

将PHP字符串中两个字符之间的数字相乘

PHP - 如何检查一行中字符串的前 4 个值是不是为数字