是否有一个“问题”;“地图”;php中的函数?

是否有一个“问题”;“地图”;php中的函数?,php,map,range,Php,Map,Range,我试图找到一个php等价于processing的“map”函数,这样我就可以将一个数字从一个范围重新映射到另一个范围。有什么存在吗?它叫什么不同的东西吗 例如,将值从0-100映射到0-9 map(75, 0, 100, 0, 9); 没有用于执行此操作的本机函数,但很容易创建: function map($value, $low1, $high1, $low2, $high2) { return ($value / ($high1 - $low1)) * ($high2 - $lo

我试图找到一个php等价于processing的“map”函数,这样我就可以将一个数字从一个范围重新映射到另一个范围。有什么存在吗?它叫什么不同的东西吗

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

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

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

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

这是未经测试的,但您应该有希望了解这一点。

感谢您提供了这个强大的功能

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

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

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

我只想指出,自己编写这个函数是多么容易。如果这不是PHP内置的,我会帮你做(如果其他人没有先做)这不是等同于
0+((75*(9-0))/(100-0))
?是的,我自己写没有问题,我只是好奇本机函数是否可用,我一直听说本机函数总是比自定义编写的函数快(当涉及基本算法时)。你不必担心这种微观优化。感谢你回答我的主要问题(如果存在本机函数),并提供了一个示例。