2012-02-15 17 views
5

は、私はそうのように見えるPHPの配列を持っていると言う:反復フィールドのアクセス値

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

私は口ひげを使用して配列を反復処理したいと思いますが、私は関連付けられた値をしたいと思います。私は、返された結果があるだろう期待し

{{#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を使用していますが、このメソッドを使用して値を繰り返し処理したいのですが...

ありがとう!

答えて

9

暗黙イテレータは、単純なデータのための方法です。データがより複雑な場合は、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}} 
8

あなたはこのために口ひげの暗黙のイテレータ機能を使用することができます。

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

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

あなたの元の配列は、おそらくかかわらず、数字キーとなりました文字列を必要とします。そのように動作するかもしれませんが、私はそれをテストしていません。