php中有“map”功能吗?

时间:2012-06-20 16:23:31

标签: php map range

我试图找到一个与处理的“map”函数相当的php,这样我就可以将一个数字从一个范围重新映射到另一个范围。有什么存在吗?它被称为不同的东西吗?

http://processing.org/reference/map_.html

例如,将值从0-100映射到0-9。

map(75, 0, 100, 0, 9);

2 个答案:

答案 0 :(得分:12)

这样做没有本机功能,但很容易创建:

function map($value, $low1, $high1, $low2, $high2) {
    return ($value / ($high1 - $low1)) * ($high2 - $low2) + $low2;
}

这是未经测试的,但你应该希望得到这个想法。

答案 1 :(得分:1)

感谢这个伟大的功能!

我个人会通过添加简单的错误检查来改进这个功能,以避免除以0,这会使PHP产生致命错误。

function map($value, $low1, $high1, $low2, $high2) {
    if ($low1 == $high1)
         return $low1;

    return ($value / ($high1 - $low1)) * ($high2 - $low2) + $low2;
}