2014-02-17 23 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 %}