Render php array within an array in mustache -


my array "$groupdata" looks this:

 array(3) (     0 => array(3) (         "id" => string(1) "2"         "name" => string(20) "super administrators"         "permissions" => array(3) (             "system" => integer 1             "superuser" => string(1) "1"             "admin" => string(1) "1"         )     )     1 => array(3) (         "id" => string(1) "3"         "name" => string(10) "publishers"         "permissions" => array(4) (             "system.pub.add" => integer 1             "system.pub.delete" => integer 1             "system.pub.edit" => integer 1             "system.pub.publish" => integer 1         )     )     2 => array(3) (         "id" => string(1) "4"         "name" => string(7) "authors"         "permissions" => array(3) (             "system.pub.add" => integer 1             "system.pub.delete" => integer 1             "system.pub.edit" => integer 1         )     ) ) 

i having trouble rendering permissions part of code. have tried using {{#groupdata}}{{#permissions}} {{.}} {{/permissions}}{{/groupdata}} doesn't work.

your problem {{ . }}... you're trying render associative array string, , doesn't work in php:

<?php echo array('foo' => 1, 'bar' => 2); // no me gusta :) 

like things mustache, answer here prepare view. expect render array as? json? if so, make explicit:

<?php foreach ($data['groupdata'] $key => $group) {     $data['groupdata'][$key]['permissionsjson'] = json_encode($group['permissions']); }  $tpl = "{{# groupdata }}{{ permissionsjson }}{{/ groupdata }}";  $m = new mustache_engine; echo $m->render($tpl, $data); 

if want available pairs of key/value, explicitly:

<?php foreach ($data['groupdata'] $key => $group) {     $permissions = array();     foreach ($group['permissions'] $key => $val) {         $permissions[] = array('key' => $key, 'val' => $val);     }     $data['groupdata'][$key]['permissions'] = $permissions; }  $tpl = "{{# groupdata }}{{# permissions }}{{ key }}: {{ val }}{{/ permissions }}{{/ groupdata }}";  $m = new mustache_engine; echo $m->render($tpl, $data); 

do want iterate on list of keys?

<?php foreach ($data['groupdata'] $key => $group) {     $data['groupdata'][$key]['permissions'] = array_keys($group['permissions']); }  $tpl = "{{# groupdata }}{{# permissions }}{{ . }}{{/ permissions }}{{/ groupdata }}";  $m = new mustache_engine; echo $m->render($tpl, $data); 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -