6

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

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

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

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

2 回答 2

12

没有用于执行此操作的本机函数,但很容易创建:

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

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

于 2012-06-20T16:33:48.693 回答
1

感谢这个伟大的功能!

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

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

    return ($value / ($high1 - $low1)) * ($high2 - $low2) + $low2;
}
于 2018-01-17T15:26:44.853 回答