Gauging Interest:RFC to add map() function

From: Date: Wed, 26 Jun 2013 15:20:01 +0000
Subject: Gauging Interest:RFC to add map() function
Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
Hello,

I would like to submit an RFC to add a new function to the PHP language. The function would be called "map()". The purpose of this function would be to take an existing value within a range and make it to a corresponding location within a new range.

The map() method would have 5 required parameters, $originalLow, $originalHigh, $newLow, $newHigh, and $value.

map() would be implement the following:

function map($originalLow, $originalHigh, $newLow, $newHigh, $value) {
	return $newLow + ($value - $originalLow) * ($newHigh - $newLow) / ($originalHigh- $originalLow);
}

Example:
Let's say we are teachers and are grading final exams. We have a policy that the best score is 100, and the worst score is a 70. Students scored between 55 and 92. We want to easily re-score the exams to be within the new score range, so we would use the new map() function. Let's begin with mapping the lowest score:
    
$newScore = map(55, 92, 70, 100, 55); //$newScore = 70
    
If we have all of our scores in an array: $scores = array(71, 65, 55, 85, 88, 86, 92, 77, 73); We could use a foreach loop to remap each value: $newScores = array(); foreach($score as $scores) { $newScores[] = map(55, 92, 70, 100, $score); } var_dump($newScores); /* array(9) {   [0]=>   float(82.972972972973)   [1]=>   float(78.108108108108)   [2]=>   int(70)   [3]=>   float(94.324324324324)   [4]=>   float(96.756756756757)   [5]=>   float(95.135135135135)   [6]=>   int(100)   [7]=>   float(87.837837837838)   [8]=>   float(84.594594594595)   } */ Just like that, we have the new exam grades that fit our policy, within the proper scale, without having to do any of the messy math ourselves. While I do recognize that this is somewhat trivial to anyone who knows the proper formula, I feel as though it would serve the PHP community well. Much the same as the pow() or pi() functions do. I appreciate your thoughts on this matter and whether or not this is worth pursuing as an RFC. Thank you, Jeremy Curcio [email protected]

Thread (15 messages)

« previous php.internals (#67884) next »