在Mustache PHP中访问迭代字段的值

6

假设我有一个PHP数组,看起来像这样:

    $values = Array(
        '0' => 'value1',
        '1' => 'value2',
        '2' => 'value3'
    )

我希望使用Mustache迭代数组,但我想要关联的值。这就是我希望做到的:
    {{#values}}
        {{the current value}}
    {{/values}}

I hope there returned result would be:

    value1
    value2
    value3

我已经通过更改结构来处理这个问题:

    $values = Array(
        '0' => array('value=' =>'value1'),
        '0' => array('value=' =>'value2'),
        '0' => array('value=' =>'value3'),
    )

在Mustache迭代器中调用{{value}}。

我应该完全用不同的方法吗?我正在使用PHP中的SplFixedArray,我想使用这种方法遍历值...

谢谢!

3个回答

12

隐式迭代器是处理简单数据的好方法。如果你的数据比较复杂,那么 PHP 的 ArrayIterator 也能胜任。

这里是一个我已经运作过的例子,希望对别人有用。

$simple_data = array('value1','value2','value3');   
$complex_data = array(array('id'=>'1','name'=>'Jane'),array('id'=>'2','name'=>'Fred') );

$template_data['simple'] = $simple_data;
$template_data['complex'] = new ArrayIterator( $complex_data ); 

$mustache->render('template_name', $template_data );

在模板中,您可以使用以下内容:

{{#simple}}
      {{.}}<br />
{{/simple}}

{{#complex}}
   <p>{{ id }} <strong>{{ name }}</strong></p>
{{/complex}}

你的答案帮了我很多!我发现使用 ArrayIterator 封装数据非常好用和简单,可以遍历 PHP 关联数组而不必将它们转换成视图。 - mzcarlos

8

0

我曾经在一个非常老的PHP框架上工作,它使用了类似Smarty语法但是双花括号的方式,让我卡了很长时间,所以以下代码帮助我解决了问题:) 也许对你有用。

{{ #each link in bluelinks }}
  <p><strong>{{ link }}</strong></p>
{{/each}}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接