MB
Size: a a a
КГ
AD
AA
MB
КГ
ФХ
MB
КГ
КГ
$result = [];
$generators = [];
while ($generator = array_shift($generators)) {
$value = $generator->current();
if ($value instanceof Generator) {
$generators[] = $value;
continue;
}
$result[] = $value;
}
КГ
SP
function resolve(Generator ...$generators)
{
$resolved = array_fill(0, count($generators), null);
while(true) {
$thereIsValidGen = false;
foreach($generators as $idx => $gen) {
if (!$gen->valid()) continue;
$thereIsValidGen = true;
$value = $gen->current();
if (!$value instanceof Generator) {
$resolved[$idx] = $value;
}
$gen->next();
}
if (!$thereIsValidGen) break;
}
return $resolved;
}
SP
SP
AC
$result = [];
$generators = [];
while ($generator = array_shift($generators)) {
$value = $generator->current();
if ($value instanceof Generator) {
$generators[] = $value;
continue;
}
$result[] = $value;
}
SP
MB
$result = [];
$generators = [];
while ($generator = array_shift($generators)) {
$value = $generator->current();
if ($value instanceof Generator) {
$generators[] = $value;
continue;
}
$result[] = $value;
}
AC