【问题标题】:Accessing value of iterated field in Mustache PHP在 Mustache PHP 中访问迭代字段的值
【发布时间】:2012-02-15 21:41:11
【问题描述】:

假设我在 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,我想使用这种方法遍历值...

谢谢!

【问题讨论】:

    标签: php arrays templates mustache


    【解决方案1】:

    隐式迭代器是处理简单数据的方法。如果您的数据更复杂,那么 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 关联数组以避免将它们转换为视图。
    【解决方案2】:

    您可以为此使用 mustache 的隐式迭代器功能:

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

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

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

    【讨论】:

      【解决方案3】:

      我正在开发一个超级旧的 php 框架,它使用类似 smarty 的语法但双花括号,让我挂了很长一段时间,所以下面的循环为我运行:) 也许它也会帮助你。

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

      【讨论】:

        猜你喜欢
        • 2013-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-06
        • 2012-03-31
        相关资源
        最近更新 更多