#native_company# #native_desc#
#native_cta#

Generate a range of numbers

By wall
on October 24, 2001

Version: 1

Type: Function

Category: Algorithms

License: GNU General Public License

Description: Syntax:
array steps(double start, double end, int steps)

Returns an array of numbers, beginning with $start and gradually incrementing it so that the final number is $end.
You decide how many numbers you want in the list, and the function will modify the incrementation accordingly.
It will return a minimum of 2 munbers ($start and $end), no matter how small $steps is.

<?php

# Return a list with $steps elements, incrementing gradually from $start to $end.
# Example: steps(0,256,9) will return:
# array(0,32,64,96,128,160,192,224,256)
function steps($start, $end, $steps)
{
	settype($start, double);
	settype($end,   double);
	settype($steps, integer);

	# Avoid division by zero...
	if ($steps < 2)
		$steps = 2;

	# Initialise.
	$return = array();
	
	for ($i=0; $i<=$steps-1; $i++)
	{
		# In step 2 of 10 this will be 0.2.
		$end_percent = $i / ($steps-1);
	
		# In step 2 of 10 this will be 0.8.
		$start_percent   = 1-$end_percent;
	
		# $start_percent + $end_percent will always be equal to 1.
		$return[] = $start*$start_percent + $end*$end_percent;
	}

	return $return;
}

?>