Вы можете использовать тот факт, что PHP поддерживает внутренний указатель массива.Вот пример, в котором используются циклы each()
и while
:
function processIDs(&$ids, $number) {
reset($ids);
$i = 0;
$l = count($ids);
while($i <= $l) {
doBatch($ids, $number);
$i += $number;
}
}
function doBatch(&$ids, $number) {
$i = 0;
$start = "<feed>";
while($i < $number && (list($key, $id) = each($ids))) {
$add .= '<entry>'.$id.'</entry>';
$i++;
}
$stop = "</feed>";
$data = $start.$add.$stop;
post($data);
}
, которые вы будете использовать с:
processIDs($ids, 50);
Нет предварительной обработки массиванужно и работает независимо от ключей.Конечно, вы также можете создать только одну функцию, но я просто хотел повторно использовать ваш код.
См. Пример здесь: http://codepad.org/Cm3xRq8B