Php 对字符串中的任何数字使用函数
我想把这个带到这根绳子上Php 对字符串中的任何数字使用函数,php,string,number-formatting,Php,String,Number Formatting,我想把这个带到这根绳子上 **字符串**=55香蕉泥25测试转换为55香蕉泥25测试 现在我有了将任何数字转换为单词的功能,即replaceNumtoWord($number) 但是,我需要获取字符串,找到每个数字,然后对字符串中的每个数字使用函数,而不是从中提取数字 有什么想法或建议吗?您可以使用: 如果必须使用不支持匿名函数的旧PHP版本: function _num2word_cb($match) { return replaceNumToWord($match[0]);
**字符串**=55香蕉泥25测试
转换为55香蕉泥25测试
现在我有了将任何数字转换为单词的功能,即
replaceNumtoWord($number)
但是,我需要获取字符串,找到每个数字,然后对字符串中的每个数字使用函数,而不是从中提取数字
有什么想法或建议吗?您可以使用:
如果必须使用不支持匿名函数的旧PHP版本:
function _num2word_cb($match) {
return replaceNumToWord($match[0]);
}
$str = preg_replace_callback('/\d+/', '_num2word_cb', $str);
旁注:模式\d+
将匹配任何数字序列,无论它们出现在何处,例如,它将匹配“my10、20、30foo”中的10、20和30。如果只想匹配20,可以将模式更改为\b\d+\b
。您可以使用:
如果必须使用不支持匿名函数的旧PHP版本:
function _num2word_cb($match) {
return replaceNumToWord($match[0]);
}
$str = preg_replace_callback('/\d+/', '_num2word_cb', $str);
旁注:模式\d+
将匹配任何数字序列,无论它们出现在何处,例如,它将匹配“my10、20、30foo”中的10、20和30。如果只想匹配20,可以将模式更改为\b\d+\b
。可以使用
如果您的php版本<5.3,则需要定义传递给preg\u replace\u回调的函数。您可以使用
preg_replace_callback ( mixed $pattern , callable $callback , mixed
$subject [, int $limit = -1 [, int &$count ]] )
如果php版本<5.3,则需要定义传递给preg_replace_回调的函数
preg_replace_callback ( mixed $pattern , callable $callback , mixed
$subject [, int $limit = -1 [, int &$count ]] )
该函数的行为与preg_replace()几乎相同,只是应该指定回调而不是替换参数
此函数的行为与preg_replace()几乎相同,只是不应指定替换参数,而应指定回调。删除我的函数,对你的函数进行升级,因为它是较早的,我自己的解决方案没有添加任何新的内容。很抱歉,Gordon,我更改了函数名,并且从未从代码中更新过它,似乎没有错误,但我的replaceNumToWord函数有一个问题,因为它没有返回任何内容。感谢TheifMaster和Gordon删除我的,因为它是较早的,所以我的解决方案没有添加任何新内容。我的道歉Gordon,我更改了函数名,并且从未从您的代码中更新过它,似乎没有错误,但我的ReplaceNumToward函数有问题,因为它没有返回任何内容。谢谢他们的老板和戈登