added getKeyValuePairs() on Twig_Node_Expression_Array

This commit is contained in:
Arnaud Le Blanc
2011-11-12 12:10:50 +01:00
parent 3f64f1d24c
commit 542e9e76dc
+17 -3
View File
@@ -15,6 +15,20 @@ class Twig_Node_Expression_Array extends Twig_Node_Expression
parent::__construct($elements, array(), $lineno); parent::__construct($elements, array(), $lineno);
} }
public function getKeyValuePairs()
{
$pairs = array();
foreach (array_chunk($this->nodes, 2) as $pair) {
$pairs[] = array(
'key' => $pair[0],
'value' => $pair[1],
);
}
return $pairs;
}
/** /**
* Compiles the node to PHP. * Compiles the node to PHP.
* *
@@ -24,16 +38,16 @@ class Twig_Node_Expression_Array extends Twig_Node_Expression
{ {
$compiler->raw('array('); $compiler->raw('array(');
$first = true; $first = true;
foreach (array_chunk($this->nodes, 2) as $entry) { foreach ($this->getKeyValuePairs() as $pair) {
if (!$first) { if (!$first) {
$compiler->raw(', '); $compiler->raw(', ');
} }
$first = false; $first = false;
$compiler $compiler
->subcompile($entry[0]) ->subcompile($pair['key'])
->raw(' => ') ->raw(' => ')
->subcompile($entry[1]) ->subcompile($pair['value'])
; ;
} }
$compiler->raw(')'); $compiler->raw(')');