PHP - получение позиции в цикле - PullRequest
1 голос
/ 19 февраля 2010

У меня есть функция, которая вызывается в цикле foreach и принимает два параметра: целое число, представляющее число раз выполнения цикла, и массив (без фиксированного размера).

Я хотел бы вернуть значение ключа массива, равное счетчику.

Например, если массив состоит из четырех элементов: A, B, C и D, а счетчик равен 2, он возвращает B. Однако я пытаюсь получить тот же результат, если счетчик равен 6 , 10, 14, 38, 3998 и т. Д. И т. Д.

Есть ли простой способ добиться этого?

Любой совет приветствуется.

Спасибо.

Ответы [ 2 ]

1 голос
/ 19 февраля 2010
<?php

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

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

Примечание : я предполагаю, что вы зацикливаетесь на массиве массивов и передаете это своей функции.Если это не так, просто передайте любой массив, который вам нужно передать, вместо $ что угодно.

0 голосов
/ 19 февраля 2010

Если вы просто используете эту функцию для перебора массива, вы также можете сделать

$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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...