Page 1 of 1
Number sequence or cycle
Posted: Mon Aug 25, 2008 1:16 pm
by jattin480
Hello,
This is probably simple but it is driving me crazy.
I need to increment a variable but when it goes over a limit it continues the count by starting from the beginning. like this:
Let's say that the end of the sequence is 10 and I want to go through it 16 times starting from 1
1---2---3---4---5---6---7---8---9---10
1---2---3---4---5---6---7---8---9---10
11-12--13--14--15--16
As you see it ends at 6 and it would return that value.
Re: Number sequence or cycle
Posted: Mon Aug 25, 2008 1:27 pm
by soulcrazy
This what you're looking for?
Code: Select all
$limit = 16;
for ( $i=0; $i<$limit; $i++ ) {
for ( $x=0; $x<10; $x++ )
echo $i.':'.$x.' -- ';
echo '<br />';
}
/* output:
0:0 -- 0:1 -- 0:2 -- 0:3 -- 0:4 -- 0:5 -- 0:6 -- 0:7 -- 0:8 -- 0:9 --
1:0 -- 1:1 -- 1:2 -- 1:3 -- 1:4 -- 1:5 -- 1:6 -- 1:7 -- 1:8 -- 1:9 --
2:0 -- 2:1 -- 2:2 -- 2:3 -- 2:4 -- 2:5 -- 2:6 -- 2:7 -- 2:8 -- 2:9 --
3:0 -- 3:1 -- 3:2 -- 3:3 -- 3:4 -- 3:5 -- 3:6 -- 3:7 -- 3:8 -- 3:9 --
4:0 -- 4:1 -- 4:2 -- 4:3 -- 4:4 -- 4:5 -- 4:6 -- 4:7 -- 4:8 -- 4:9 --
5:0 -- 5:1 -- 5:2 -- 5:3 -- 5:4 -- 5:5 -- 5:6 -- 5:7 -- 5:8 -- 5:9 --
6:0 -- 6:1 -- 6:2 -- 6:3 -- 6:4 -- 6:5 -- 6:6 -- 6:7 -- 6:8 -- 6:9 --
7:0 -- 7:1 -- 7:2 -- 7:3 -- 7:4 -- 7:5 -- 7:6 -- 7:7 -- 7:8 -- 7:9 --
8:0 -- 8:1 -- 8:2 -- 8:3 -- 8:4 -- 8:5 -- 8:6 -- 8:7 -- 8:8 -- 8:9 --
9:0 -- 9:1 -- 9:2 -- 9:3 -- 9:4 -- 9:5 -- 9:6 -- 9:7 -- 9:8 -- 9:9 --
10:0 -- 10:1 -- 10:2 -- 10:3 -- 10:4 -- 10:5 -- 10:6 -- 10:7 -- 10:8 -- 10:9 --
11:0 -- 11:1 -- 11:2 -- 11:3 -- 11:4 -- 11:5 -- 11:6 -- 11:7 -- 11:8 -- 11:9 --
12:0 -- 12:1 -- 12:2 -- 12:3 -- 12:4 -- 12:5 -- 12:6 -- 12:7 -- 12:8 -- 12:9 --
13:0 -- 13:1 -- 13:2 -- 13:3 -- 13:4 -- 13:5 -- 13:6 -- 13:7 -- 13:8 -- 13:9 --
14:0 -- 14:1 -- 14:2 -- 14:3 -- 14:4 -- 14:5 -- 14:6 -- 14:7 -- 14:8 -- 14:9 --
15:0 -- 15:1 -- 15:2 -- 15:3 -- 15:4 -- 15:5 -- 15:6 -- 15:7 -- 15:8 -- 15:9 --
*/
If you want it to start at 1, instead of 0, and have it end at 10, not 9...change the 2nd FOR-LOOP to:
Code: Select all
for ( $x=1; $x<11; $x++ ) { ... }
Re: Number sequence or cycle
Posted: Mon Aug 25, 2008 3:11 pm
by RobertGonzalez
Adds a little bit of flexibility to it.
Code: Select all
<?php
header('Content-Type: text/plain');
$startnumber = 1;
$outerlimit = 16;
$innerlimit = 10;
for ($i = $startnumber; $i <= $outerlimit; $i++) {
for ($x = $startnumber; $x <= $innerlimit; $x++ ) {
echo "$i:$x\t";
}
echo "\n";
}
?>
Re: Number sequence or cycle
Posted: Mon Aug 25, 2008 3:18 pm
by jattin480
Thank you for the reply, my example was just a visual of the process so i guess i'll post it differently:
I start with a variable and show what I would like the end result to be. I'm pretty sure I can accomplish yjis with a function just don't know how.
To put it in another way I want to set a limit like when you work with seconds.
Seconds end at 59 then it start from 00.
so if $seconds = 50 ($seconds + 10) = 00:01:00 I would want to return just the values in the seconds field.
By a limit of 33: Snumber = 29; ($number + 5) should be = 1
In other words if we have a wheel of numbers 1 to 33 and I ask you to move the wheel 35 positions starting from #1, you would end up a #2
Re: Number sequence or cycle
Posted: Mon Aug 25, 2008 3:39 pm
by RobertGonzalez
Code: Select all
<?php
function getNextInLine($value, $limit) {
if ($limit >= $value) {
return $value;
}
$new = $value - $limit;
return $new >= $limit ? getNextInLine($new, $limit) : $new;
}
//tests
$max = 59;
$me = 122;
echo getNextInLine($me, $max); // Output: 4
?>