2012-02-15 50 views
5

Nói rằng tôi có một mảng trong PHP giống như vậy:giá trị truy cập của lĩnh vực lặp trong Moustache PHP

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

Tôi muốn lặp qua mảng bằng cách sử dụng Moustache nhưng tôi muốn giá trị đi kèm. Đây là những gì tôi đang hy vọng có thể làm:

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

Tôi hy vọng có kết quả trả về sẽ là:

value1 
    value2 
    value3 

Tôi đã nhận được khoảng này bằng cách thay đổi cấu trúc của tôi để:

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

Và gọi {{valule}} bên trong trình lặp của Mustache.

Tôi có nên làm điều này theo cách hoàn toàn khác không? Tôi đang sử dụng một SplFixedArray trong PHP và tôi muốn lặp qua các giá trị bằng cách sử dụng phương pháp này ...

Cảm ơn!

Trả lời

9

Iterator ẩn là cách để đi cho dữ liệu đơn giản. Nếu dữ liệu của bạn phức tạp hơn thì PHP ArrayIterator thực hiện tốt công việc.

Đây là một ví dụ mà tôi đang làm việc. Hy vọng nó rất hữu ích cho người khác.

$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); 

Và trong các mẫu bạn có thể có

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

{{#complex}} 
    <p>{{ id }} <strong>{{ name }}</strong></p> 
{{/complex}} 
Các vấn đề liên quan