2014-02-17 25 views
0

我有这样的阵列值的表中的打印得到一个数组的键名在树枝

array(4) { 

     ["ayel.bokbok"]=> 
     array(1) { 
     ["/app_dev.php/index/"]=> 
     int(2) 
     } 
     ["ryhel1120"]=> 
     array(2) { 
     ["/app_dev.php/index/"]=> 
     int(47) 
     ["/app_dev.php/users/"]=> 
     int(84) 
     } 
     ["ariel.alvarez"]=> 
     array(1) { 
     ["/app_dev.php/users/"]=> 
     int(3) 
     } 
     ["rainercedric23"]=> 
     array(3) { 
     ["/app_local.php/admin/analytics"]=> 
     int(338) 
     ["/app_local.php/index/"]=> 
     int(7) 
     ["/app_local.php/users/"]=> 
     int(13) 
     } 

我怎么能因为这个代码打印ayel.bokbok在树枝{%key,value in foo%}枝杈只打印索引和而不是密钥的关键名称。

@ponciste这就是{{转储(阵列)}}在树枝打印:

阵列(1){

[0] =>数组(4)

{ ["ariel.alvarez"]=> array(2) 

    { ["/app_dev.php/index/"]=> int(1) 

     ["/app_dev.php/users/"]=> int(3) } 

    ["ayel.bokbok"]=> array(1) 

    { ["/app_dev.php/index/"]=> int(4) } 

    ["ryhel1120"]=> array(2) 

    { ["/app_dev.php/index/"]=> int(58) 

     ["/app_dev.php/users/"]=> int(121) } 

    ["rainercedric23"]=> array(3) 

    { ["/app_local.php/admin/analytics"]=> int(312) 

     ["/app_local.php/index/"]=> int(7) ["/app_local.php/users/"]=> int(8) } 

} } 

这是来自控制器的代码:

<?php 

namespace foo\BarBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class AnalyticsController extends Controller { 

    public function indexAction() { 
     $Gapi = $this->container->get('bti_rep_sys.gapiManager')->GapiGetOverview(); 
     $Gapifiltered = $this->container->get('bti_rep_sys.gapiManager')->GapiGetFilter(); 


    return $this->render('fooBarBundle:Analytics:index.html.twig', array('gapidata' => $Gapi, 'gapidatafiltered'=> $Gapifiltered)); 
    } 

} 

这是我的index.html.twig代码:

{%extends "fooBarBundle::layout.html.twig"%} 
{%block body%} 
{%include "fooBarBundle:Analytics:GoogleCharts.js.twig"%} 

<h1>Analytics Report </h1> 
<div class="row"> 
    <div class="float-left" id="chart_div_bar"></div> 
    <div class="float-right" id="chart_div_pie"></div> 
</div> 

<div class="right-align">(Updated as of {{"now"|date('d/m/Y')}})</div> 
{{ dump(gapidatafiltered) }} // for dumping of data 
{%endblock%} 
+0

这就是{{dump(array)}}打印的内容吗? – ponciste

+1

也发布你的php,你设置你的数组 – ponciste

+0

请显示你的代码 –

回答

3

如果你想获得/app_dev.php/index/串那么这可能做的伎俩

{% for route,paths in foo %} 
    {% for path in paths|keys %} 
     {{ path }} 
    {% endfor %} 
{% endfor %} 
+0

但是,如何迭代路径?我想打印所有关键路径,因为在回答中只返回数组的第一个值。 – Cedric

+0

@Cedric我已经更新了我的答案中的代码来做到这一点 –

0

你可以使用key过滤器用于获取数组键:

{% for key in foo|keys %} 
    Key: {{ key }} 
{% endfor %} 

但是,正如@ponciste提到,恳求我们展示{{ dump(foo) }}

+0

我不确定这是否会解决他的问题,因为我认为在PHP中设置密钥时出现错误 – ponciste

0

我已经拿到钥匙名之前找到解决方案通过循环语句创建:

{% for array in gapidatafiltered %} 
    {% for user, key in array%} 
     {{user}} 
     {%for x,y in key%} 
      {{x}}{{y}} 
     {%endfor%} 

    {% endfor %} 
{% endfor %} 

这就得到了我需要的所有密钥,特别是所有用户名和路径以及路径中的int值。干杯

0

这我相信它,一气呵成。

{% for item,key in data|keys %} 
    <li><a href="{{ key }}">{{ item }}</a></li> 
    {% endfor %}