Я использую smarty для своего сайта, и я пытаюсь перебрать массив для печати строк таблицы …
Массив выглядит следующим образом:
Array ( [TM98800G] => Array ( [zid] => Array ( [0] => 90001 [1] => 90002 [2] => 90003 [3] => 90004 [4] => 90005 ) [count] => Array ( [0] => 10 [1] => 10 [2] => 20 [3] => 25 [4] => 15 ) ) [TM76654G] => Array ( [zid] => Array ( [0] => 90301 [1] => 90302 [2] => 90303 [3] => 90304 [4] => 90305 ) [count] => Array ( [0] => 25 [1] => 25 [2] => 20 [3] => 35 [4] => 45 ) ) )
Я пытаюсь выполнить цикл и распечатать таблицы:
<h5>TM98800G </h5> <table> <tr> <td>90001</td> <td>10</td> </tr> <tr> <td>90002</td> <td>10</td> </tr> <tr> <td>90003</td> <td>20</td> </tr> <tr> <td>90004</td> <td>25</td> </tr> <tr> <td>90005</td> <td>15</td> </tr> </table> <h5>TM76654G</h5> <table> <tr> <td>90301</td> <td>25</td> </tr> <tr> <td>90302</td> <td>25</td> </tr> <tr> <td>90303</td> <td>20</td> </tr> <tr> <td>90304</td> <td>35</td> </tr> <tr> <td>90305</td> <td>45</td> </tr> </table>
Я пробовал вложенные инструкции foreach и играл с разделами, но я не могу понять, как правильно его пропустить …
{foreach from=$array key=header item=table} <h5>{$header}</h5> <table> {foreach from=$table.zid key=k item=zid} <tr> <td>{$zid}</td> <td>{$table.count.$k}</td> </tr> {/foreach} </table> {/foreach}
Должен это сделать, я думаю.
foreach($array as $heading => $attrs) { echo "<h5>" . $heading . "</h5>"; echo "<table>"; for($i=0; $i < count($attrs['zid']); $i++) { // will work as long // as zid and count will // always be the same size echo "<tr>"; echo "<td>" . $attrs['zid'][$i] . "</td>"; echo "<td>" . $attrs['count'][$i] . "</td>"; echo "</tr>"; } echo "</table>"; }