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

时间:2012-02-15 21:41:12

标签: php arrays templates mustache

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

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

我想使用Mustache迭代数组,但我想要关联的值。这就是我希望做的事情:

    {{#values}}
        {{the current value}}
    {{/values}}

我希望返回的结果是:

    value1
    value2
    value3

我通过将结构更改为:

来解决这个问题
    $values = Array(
        '0' => array('value=' =>'value1'),
        '0' => array('value=' =>'value2'),
        '0' => array('value=' =>'value3'),
    )

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

我应该以完全不同的方式做这件事吗?我在PHP中使用SplFixedArray,我想使用此方法迭代值...

谢谢!

3 个答案:

答案 0 :(得分:11)

隐式迭代器是获取简单数据的方法。如果您的数据更复杂,那么PHPs 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}}

答案 1 :(得分:8)

您可以使用胡子的隐式迭代器功能:

https://github.com/bobthecow/mustache.php/tree/master/examples/implicit_iterator

{{#values}}
    {{.}}
{{/values}}

您的原始数组可能需要数字键,现在可以使用字符串。它可能会那样工作,但我还没有测试过。

答案 2 :(得分:0)

我正在使用一个超老的php框架,该框架使用了类似smarty的语法,但是使用了大括号,这使我很长时间无法使用,因此以下内容使循环对我有利:)也许对您也有帮助。 / p>

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