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
Post a Comment