From 1bb24438b5ea590afabac1fcaeef3f74802b9771 Mon Sep 17 00:00:00 2001 From: fabien Date: Sat, 7 Nov 2009 19:11:44 +0000 Subject: [PATCH] made small optimizations to for loops git-svn-id: http://svn.twig-project.org/trunk@116 93ef8e89-cb99-4229-a87c-7fa0fa45744b --- lib/Twig/runtime_for.php | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/Twig/runtime_for.php b/lib/Twig/runtime_for.php index 5ab9475..c587873 100644 --- a/lib/Twig/runtime_for.php +++ b/lib/Twig/runtime_for.php @@ -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, ); } -- 1.7.2.5