PHP - 在循环中获得位置

时间:2010-02-19 16:45:46

标签: php arrays loops

我有一个在foreach循环中调用的函数,它接受两个参数,一个整数,表示循环运行的次数和一个数组(没有固定大小)。

我想返回等于计数器的数组键的值。

例如,如果数组有四个元素:A,B,C和D且计数器等于2,则返回B.但是,如果计数器等于6,我试图得到相同的结果,10,14,38,3998等等。

有没有一种简单的方法可以达到这个目的?

任何建议表示赞赏。

感谢。

2 个答案:

答案 0 :(得分:1)

<?php

function foo($position, array $array)
{
    return $array[$position % count($array)];
}

foreach ($array as $i => $whatever) {
    $foo = foo($i, $whatever);
}

注意:我假设您正在遍历数组数组,并将其传递给您的函数。如果不是这样,那么只需传递你需要传递的数组而不是$ whatever。

答案 1 :(得分:0)

如果您只是使用此函数迭代数组,那么您也可以

$iterator= new LimitIterator(                      // will limit the iterations
               new InfiniteIterator(               // will restart on end
                   new ArrayIterator(              // allows array iteration
                       array('A','B', 'C', 'D'))), // the array to iterate over
       0, 20);                                     // start offset and iterations

foreach($iterator as $value) {
    echo $value; // outputs ABCDABCDABCDABCDABCD
}