在PHP中,将数字替换为;“字符串”;取决于范围?
我需要一个php函数根据一些范围将一些数字转换成“字符串”(使用引号,因为不确定它是否是正确的名称) 问题在PHP中,将数字替换为;“字符串”;取决于范围?,php,wordpress,function,Php,Wordpress,Function,我需要一个php函数根据一些范围将一些数字转换成“字符串”(使用引号,因为不确定它是否是正确的名称) 问题 在我的网站上,我有不同的数字(在不同的领域,可能会发生变化),我想修改 我需要一个函数,根据范围将数字更改为“字符串” 信息 数字 数字可以是0到5000 我的射程 从0到150 从151到300 从301到500 最多501 范围-字符串关系 从0到150-->“小于150平方米” 从151到300-->“150-300平方米” 从301到500-->“300-500平方米
- 在我的网站上,我有不同的数字(在不同的领域,可能会发生变化),我想修改
- 我需要一个函数,根据范围将数字更改为“字符串”
- 数字可以是0到5000
- 从0到150
- 从151到300
- 从301到500
- 最多501
- 从0到150-->“小于150平方米”
- 从151到300-->“150-300平方米”
- 从301到500-->“300-500平方米”
- 最多501-->“最多500平方米”
- 编号:180-->(此编号为151)-->输出:“150-300平方米”
- 编号:524-->(此编号大于501)-->输出:“高达500平方米”
<?php
function my_map_field($data) {
$map = array(
'0' => 'Less than 150 m2',
'1' => 'Less than 150 m2',
'2' => 'Less than 150 m2',
'3' => 'Less than 150 m2',
'4' => 'Less than 150 m2', /*Imagine all the numbers*/
'151' => '150 - 300 m2', /*Imagine all the numbers*/
'301' => '300 - 500 m2', /*Imagine all the numbers*/
);
return isset( $map[$data] ) ? $map[$data] : $data;
}
?>
用正则表达式查找数字,然后替换它们。
正则表达式模式\d+查找数字
function replace_numbers($str) {
Preg_match_all("/(\d+)/", $str, $arr);
//Var_dump($arr);
For ($i=0; $i<count($arr[0]);$i++){
If($arr[0][$i]>=0 && $arr[0][$i]<=150) $str = str_replace($arr[0][$i], "less than 150 m2", $str);
If($arr[0][$i]>=151 && $arr[0][$i]<=300) $str = str_replace($arr[0][$i], "151 - 300 m2", $str);
If($arr[0][$i]>=301 && $arr[0][$i]<=500) $str = str_replace($arr[0][$i], "301 - 500 m2", $str);
If($arr[0][$i]>=501 && $arr[0][$i]<=5000) $str = str_replace($arr[0][$i], "up to 500 m2", $str);
}
Return $str;
}
$str ="Number: 180, Number: 524"; // the string that needs attention
$newstr = replace_numbers($str); // newstr is the old string but with replaced numbers
函数替换\u编号($str){
预匹配全部(“/(\d+/”,$str,$arr);
//Var_转储($arr);
对于($i=0;$i=0&&$arr[0][$i]=151&&$arr[0][$i]=301&&$arr[0][$i]=501&&$arr[0][$i]到目前为止,你尝试了什么?让我们看看你的代码,这样我们可以给你一些提示。堆栈溢出不是一种编码服务。到目前为止,你管理了什么?你有任何代码吗?对不起。我是新手,所以我所取得的成绩是这样的:@irek19请看下面我的答案。你的问题中有一些冲突,所以我尽了最大努力。你写的数字可以在0到5000之间,你的例子是5240。我只是写了代码,没有把它变成一个函数。在手机上这么做已经足够了,但你想让我把它变成一个函数吗?@Andreas我更正了这个数字(我的错)。我正在使用您的代码阅读一些文档,了解它是如何工作的,并将其更改为函数。如果您可以更改它,那将是非常好的,但如果您不能更改,则可以使用任何文档来学习如何自己执行该操作。