使用php小胡子的密钥消耗复杂的数组

时间:2013-04-04 08:13:31

标签: php arrayiterator mustache.php

我有以下数组arr

的结构
Array
(
    [1] => Array
        (
            [width] => 600 
            [pages] => Array
                (
                    [0] => Array
                        (
                            [bgColor] => 'red' 
                        )



                ) 
        )

    [3] => Array
        (
            [width] => 400 
            [pages] => Array
                (
                    [0] => Array
                        (
                            [bgColor] => 'blue' 
                        )



                ) 
        )

)

目前我正在传递数据,

$tpl->render(array( 
   'arr'   => new ArrayIterator($arr)                       
));

在胡子模板中,我正在消费它,

{{#arr}}  
  {{width}}
{{/arr}}

它正确地给了我width。但现在我想要该数组的keys(第一个1和第二个3)以及pages键中的元素总数。

我该怎么做这个小胡子?

1 个答案:

答案 0 :(得分:1)

好的,我知道小胡子无法跟踪数组的index,它需要hash中的所有内容。

所以,我正在使用以下技术,但它有点难看。

function prepareForMustache ($arr) {
    foreach($arr as $k => &$v) {
        $v['key']  = $k;
        $v['pagesCount'] = count($v['pages']);
    } 
}


$arr = prepareForMustache($arr);

$tpl->render(array( 
   'arr'   => new ArrayIterator($arr)                       
));

在胡子模板中消费,

{{#arr}}  
  {{width}}
  {{key}}
  {{pagesCount}}
{{/arr}}