Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Mustache PHP中访问迭代字段的值_Php_Arrays_Templates_Mustache - Fatal编程技术网

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

在Mustache PHP中访问迭代字段的值,php,arrays,templates,mustache,Php,Arrays,Templates,Mustache,假设我有一个PHP数组,看起来是这样的: $values = Array( '0' => 'value1', '1' => 'value2', '2' => 'value3' ) 我想使用Mustache遍历数组,但我想要关联的值。这就是我希望做的: {{#values}} {{the current value}} {{/values}} 我希望返回的结果是: valu

假设我有一个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'),
    )
并在Mustach迭代器内调用{valule}}

我应该用完全不同的方式来做吗?我在PHP中使用一个SplFixedArray,我想用这个方法迭代这些值


谢谢

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


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

隐式迭代器是处理简单数据的方法。如果您的数据更复杂,那么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}}
{{{#simple}
{{.}}
{{/简单} {{#复合体} {{id}}{{name}}

{{/复合物}
我在一个超旧的php框架上工作,该框架使用了类似smarty的语法,但使用了双大括号,让我挂了很长一段时间,因此下面的内容让循环为我运行:)也许它也会帮到你

{{ #each link in bluelinks }}
  <p><strong>{{ link }}</strong></p>
{{/each}}
{{{#bluelinks中的每个链接}
{{link}

{{/每个}}
你的回答对我帮助很大!我发现使用ArrayIterator包装数据是迭代php关联数组以避免将其转换为视图的一种非常好且简单的方法。
{{ #each link in bluelinks }}
  <p><strong>{{ link }}</strong></p>
{{/each}}