2015-07-23 1 views
0

J'ai tableau:Tableau dynamique avec la chaîne clé

Array 
(
[CS] => Array 
    (
     [Zomblerz] => 1.80 
     [Quintic] => 2.06 
     [Mostly Harmless] => 2.21 
     [Nexus eSports] => 1.70 
     [WinOut.net] => 2.73 
     [Ace Gaming] => 1.48 
     [Luminosity Gaming] => 3.68 
     [Natus Vincere] => 1.30 
    ) 

[LoL] => Array 
    (
     [Jin Air Green Wings] => 1.17 
     [Incredible Miracle] => 5.40 
     [Rebels Anarchy] => 1.27 
     [SBENU Sonicboom] => 3.92 
     [SK Telecom T1] => 1.19 
     [CJ Entus] => 4.95 
     [KOO Tigers] => 1.38 
     [NaJin e-mFire] => 3.15 
    ) 

[StarCraft] => Array 
    (
     [Maru] => 1.48 
     [Zest] => 2.73 
     [Stats] => 1.90 
     [ByuL] => 1.94 
    ) 
) 

Je veux afficher mon tableau dans Smarty avec {section}, mais j'ai les clés d'index de chaîne et ne peux pas le faire. J'ai essayé {foreach}, mais le résultat est trop mauvais.

{section name=i loop=$odds} 
<table> 
    <th> here i want game name... </th> 
    {section name=j loop=$odds[i]} 
    <tr> 
    <td> here team name - here team number </td> 
    ... 
    </tr> 
    {/section} 
</table> 
{/section} 

Pouvez-vous m'aider?

P.S. désolé pour mon anglais (

+0

array_values ​​(); va supprimer les clés de chaîne – ArtisticPhoenix

+0

pourquoi voulez-vous utiliser '{section}' quand le document indique spécifiquement que '' A {section} est pour faire une boucle sur des tableaux de données séquentiellement indexés, contrairement à {foreach} qui est utilisé pour faire une boucle sur un seul tableau associatif. »(http://www.smarty.net/docsv2/fr/language.function.section.tpl) - http://www.smarty.net/docsv2/fr/language.function.section.tpl ' – Sean

+0

@ArtisiticPhoenix' array_values ​​() 'provoquerait un problème pour l'OP, où ils veulent faire' ici je veux le nom du jeu ... ', qui semble être les clés de la chaîne. – Sean

Répondre

0

{section} est à boucler sur les tableaux numériquement indexés seulement.

{foreach} est utilisé pour une boucle sur un tableau associatif

Votre résultat souhaité est démontré dans Example 7.8. {foreach} with nested item and key-http://www.smarty.net/docsv2/en/language.function.foreach.tpl#id2802172

Votre code ressemblerait à quelque chose comme -

{foreach key=game item=odd from=$odds} 
    <table> 
    <th>{$game}</th> 
    {foreach key=team item=teamnumber from=$odd} 
    <tr> 
     <td>{$team}: {$teamnumber}</td> 
    </tr> 
    {/foreach} 
    </table> 
{/foreach} 

modifier

par votre commentaire, si vous voulez changer la disposition de votre table, en utilisant

{if $smarty.foreach.teams.index % 2 == 0}...{/if} 

vous pourriez faire quelque chose comme -

{foreach key=game item=odd from=$odds} 
    <table> 
    <th>{$game}</th> 
    <tr> 
    {foreach name=teams key=team item=teamnumber from=$odd} 
    {if $smarty.foreach.teams.index % 2 == 0} 
    </tr> 
    <tr> 
    {/if} 
     <td>{$team}</td> 
     <td>{$teamnumber}</td> 
    {/foreach} 
    </tr> 
    </table> 
{/foreach} 

voir http://www.smarty.net/docsv2/en/language.function.foreach.tpl#foreach.property.index

+0

Merci beaucoup.Mais si je veux placer deux équipes et deux numéros en ligne comme celui-ci:

GAME1
team1 ODD1 team2 odd2
Team3 odd3 Team4 odd4
, peut foreach le faire? – SET

+0

si c'est votre résultat souhaité, pourquoi ne l'avez-vous pas mis dans votre question initiale? – Sean

+0

je suis débutant dans Smarty, juste apprendre tous les cas) pour l'aide encore, commencer à lire le manuel) – SET