14,927,655 members
See more:
hi frnds,
plz help me out to solve this below code works fine but wt i need is there is another var named as rollno the \$b array is separated according to rollno for eg:500, 2000, 1500 belongs to roll no:1 and 750, 800 belongs to roll no:2 according to this the below process should done

\$a = 230500;
\$b = array(500, 2000, 1500, 1000, 750, 800, 900, 1300, 2000, 2500, 1400, 8000); //up to n number
foreach(\$b as \$key){
\$a = \$a - \$key;
\$c = \$a;
echo \$c.'
';
}
Posted
Peter Leow 16-Jan-14 0:33am

What and how the output should look like with the roll no?
Arun-23 16-Jan-14 3:12am

o/p should look like for roll no:1 \$b(500, 2000, 1500)for roll no:2 \$b(1000, 750)like for all.. \$B value is not constant for each rollno it may vary.. so the o/p comes like this rollno 1: 230000,228000,226500 and for rollno 2:229500,228750 like wise for all rollno.. note each rollno values should subtract with \$a not on previous rollno value.
Peter Leow 16-Jan-14 3:52am

Does every roll contains 3 values? such as:
roll no 1 : 500, 2000, 1500
roll no 2: 1000, 750, 800
and so on.
Arun-23 16-Jan-14 4:17am

no it may vary some has 3 some has even 5 and even some has 10 too its not constant that's the pbm..
Peter Leow 16-Jan-14 4:30am

No can do. Unless there are certain rules or formula to derive the number of elements for each roll.
Arun-23 16-Jan-14 4:37am

then hw to solve this?? :( is there any other method to do the same..
Peter Leow 16-Jan-14 8:47am

Use random number, see solution 1.

## Solution 1

Since the number of elements is not fixed, let consider using random number.
PHP
```<?php
\$v = 230500;
\$b = array(500, 2000, 1500, 1000, 750, 800, 900, 1300, 2000, 2500, 1400, 8000); //up to n number

// get the size of \$b dynamically
\$N = count(\$b);

// randomly determine the next n number in \$b
\$n = rand(1,\$N);

\$s = 0;

\$rollno = 0;

while (\$n <= \$N){

\$display = 'roll no '.++\$rollno.': ';
\$a = \$v;

for (\$i = \$s; \$i < \$n; \$i++)
{
\$a = \$a - \$b[\$i];
\$display = \$display.\$a.', ';
}

\$display = substr(\$display,0,-2).'<br>';

echo \$display;

// randomly determine the next n number
\$s = \$n;
\$n = \$n + rand(1, \$N - \$n);

}

?>```

The number of element in each roll is determined randomly. So, the outcome will be different for each run.
v2
Arun-23 23-Jan-14 1:20am

hi Peter Leow thanks for your help..
Happy Coding :)