根据某些范围,我需要一个php函数将一些数字转换为“字符串”(使用引号,因为不确定它是否是正确的名称)。
问题
信息
数字的
我的范围
范围 - 字符串关系
实施例
我取得的成就 我正在寻找一种更好的方法来做到这一点。任何文件也欢迎。
<?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;
}
?>
答案 0 :(得分:0)
用正则表达式查找数字,然后str_replace它们 正则表达式\ 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
我没有包含任何照顾5000以上数字的东西 此外,由于你没有提供太多的例子,它不会像#34;我30岁,我的房子是400平方米&#34;因为它也将取代30。