2013-03-08 139 views
1

我有以下XML這我通過simplexml的訪問:使用Smarty的分配多維數組

<sequences> 
    <sequence> 
     <ImageUrl id=""> 
      http://www.image.com/image.jpg 
     </ImageUrl> 
     <photographer>name</photographer> 
    </sequence> 
    <sequence> 
     <ImageUrl id=""> 
      http://www.image.com/image1.jpg 
     </ImageUrl> 
     <photographer>name 1</photographer> 
    </sequence> 
</sequences> 

我需要通過在模板這個數據智者和輸出。我需要能夠輸出第一個序列圖像和攝影師的名字,然後輸出第二個。我怎樣才能做到這一點?我可以看到你可以將一個數組傳遞給smarty,然後在模板中循環它,但我基本上需要傳遞一個多維數組,每個序列節點有一個數組。

回答

1

我結束了OBJ的智者分配整體的SimpleXML和環繞在它喜歡在模板中:

{foreach from=$contents key=key item=item} 
    {foreach from=$item key=k item=i} 
     {if $k eq 'ImageUrl'} 
      <img src="{$i}" /> 
     {/if} 
     {if $k eq 'photographer'} 
      <img src="{$i}" /> 
     {/if} 
0

您的XML轉換爲數組,那麼:

在PHP

<?php 
$arr = array("first"=>1000, "second"=>1001, "third"=>1002); 
$smarty->assign('myArray', $arr); 
?> 

在Smarty的模板:

<ul> 
{foreach from=$myArray item=myArray name=myArray} 
    <li>{$myArray.first}</li> 
    <li>{$myArray.second}</li> 
    <li>{$myArray.third}</li> 
{/foreach} 
</ul> 
+0

否,我需要能夠輸出第一個序列圖像和名稱,然後單獨輸出第二個 – 2013-03-08 11:56:26

+0

然後將圖像傳遞給不同變量而不是單個數組,然後將這些變量傳遞給smarty,並使用{$ var} – 2013-03-08 11:58:44

+0

來回顯它,但是可能會有任意數量的序列項目,因此無法工作 – 2013-03-08 12:01:26