Bijay Rai
Bijay Rai

Reputation: 959

array conditions

I have the following array

$example=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
$limit=4 // 4 at the beginning only... 
//it used to get incremented automatically to 8,12,16....

At first i want 1,2,3,4as an output for which i have done

foreach($example as $eg)
{
   if($eg>$limit)
     continue;
}

and i am easily getting 1,2,3,4 at the first then 1,2,3,4,5,6,7,8 then1,2,3,4,5,6,7,8,9,10,11,12

But now i what i want is 1,2,3,4 at the very beginning then 5,6,7,8 then 9,10,11,12 lyk this... how can i get that??? please do help me... :)

AS the

foreach($example as $eg)
    {
       if($eg>$limit)
         continue;
    }

is returning only 1,2,3,4 at $limit=4 and 1,2,3,4,5,6,7,8 at $limit=8 i need 1,2,3,4 at $limit=4 and 5,6,7,8 at $limit=8

Upvotes: 0

Views: 120

Answers (3)

MH2K9
MH2K9

Reputation: 12039

You can try something like this

$example=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
$limit = 8;
$limit -= 4;
for($i = $limit; $i < ($limit + 4); $i++)
{
    echo $example[$i].' ';
}

Output

//for $limit 4 output 1 2 3 4
//for $limit 8 output 5 6 7 8
//for $limit 16 output 13 14 15 16

Upvotes: 1

dave
dave

Reputation: 64687

You would first chunk the array so each chunk has 4 elements, then loop through each chunk:

To change the numbers shown depending on which group, you could do:

 $group = $_GET['group'];
 $items = array_chunk($example, ceil(count($example)/4)[$group-1];
 echo implode(", ", $items);

Then you can go to

 yoursite.com/page.php?group=1

And it will output

1, 2, 3, 4

And when you go to

yoursite.com/page.php?group=2

It will output

5, 6, 7, 8

etc.

Upvotes: 1

Niet the Dark Absol
Niet the Dark Absol

Reputation: 324750

Have you tried using the helpful built-in functions?

array_chunk($example,$limit);

Alternatively, for more page-like behaviour:

$pagenum = 2; // change based on page
$offset = $pagenum * $limit;
array_slice($example,$offset,$limit);

Upvotes: 3

Related Questions