made small optimizations to for loops

git-svn-id: http://svn.twig-project.org/trunk@116 93ef8e89-cb99-4229-a87c-7fa0fa45744b
This commit is contained in:
fabien
2009-11-07 19:11:44 +00:00
parent 1c9566f007
commit 1bb24438b5
+11 -9
View File
@@ -78,27 +78,29 @@ function twig_iterate(&$context, $seq)
function twig_set_loop_context(&$context, $iterator, $target)
{
$idx = $iterator->idx;
if (is_array($target))
{
foreach (array_combine($target, $iterator->seq[$iterator->idx]) as $key => $value)
foreach ($target as $key => $value)
{
$context[$key] = $value;
$context[$value] = $iterator->seq[$idx][$key];
}
}
else
{
$context[$target] = $iterator->seq[$iterator->idx];
$context[$target] = $iterator->seq[$idx];
}
$context['loop'] = array(
'parent' => $iterator->parent,
'length' => $iterator->length,
'index0' => $iterator->idx,
'index' => $iterator->idx + 1,
'revindex0' => $iterator->length - $iterator->idx - 1,
'revindex' => $iterator->length - $iterator->idx,
'first' => $iterator->idx == 0,
'last' => $iterator->idx + 1 == $iterator->length,
'index0' => $idx,
'index' => $idx + 1,
'revindex0' => $iterator->length - $idx - 1,
'revindex' => $iterator->length - $idx,
'first' => $idx == 0,
'last' => $idx + 1 == $iterator->length,
);
}