Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to use round robin method in array in php?

Tags:

arrays

php

Hi i am trying to create a sub array from an array.i.e; think I have an array such as given below

 $array = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}

which I explode and assign it to a variable $i.. and run the for loop as shown below..

for ( $i=0;$i<count($array);$i++) {
    $a = array();
    $b = $array[$i];
    for($j=0;$j<count($array);$j++){
        if($b != $array[$j]){

            $a[] = $array[$j];
        }
    }

the output I want is when

$i = 1 

the array should be

{2,3,4,5,6,7,8,9,10,11} 

and when

$i = 2 

the array should be

{3,4,5,6,7,8,9,10,11,12}

similarly when

$i=19

the array should be

{1,2,3,4,5,6,7,8,9,10}

so how can I do it.

like image 307
Amie james Avatar asked Feb 25 '15 08:02

Amie james


1 Answers

Assuming $i is supposed to be an offset and not the actual value in the array, you can do

$fullArray = range(1, 19);

$i = 19;
$valuesToReturn = 10;

$subset = iterator_to_array(
    new LimitIterator(
      new InfiniteIterator(
        new ArrayIterator($fullArray)
      ),
      $i,
      $valuesToReturn
   )
);

print_r($subset);

This will give your desired output, e.g.

$i = 1 will give 2 to 11
$i = 2 will give 3 to 12
…
$i = 10 will give 11 to 1
$i = 11 will give 12 to 2
…
$i = 19 will give 1 to 10
$i = 20 will give the same as $i = 1 again

and so on.

like image 159
Gordon Avatar answered Sep 25 '22 16:09

Gordon