关于PHP / XHTML中输出格式的问题

时间:2009-10-30 23:22:50

标签: php xhtml

有没有办法只在一个表格中打印或输出每行10个元素,这个元素来自一个索引数组,其中X个元素的类型为int。

也许有些功能,我还没有听说过?

或某些技术专业人士或初学者都使用过。

我将为TR和TD嵌入一些代码;但是,我只是想知道是否有一些东西可以用来在我的桌子中每行只有10个元素。

[免责声明:我是PHP的新手,我只是在学习,所以请不要冒烟,当人们试图找到解决方案或信息时,它确实会阻碍学习过程,谢谢。]

2 个答案:

答案 0 :(得分:5)

您可以在循环中使用计数器来跟踪您在当前行中生成的<td>个元素的数量:

echo "<tr>";
$i = 0;
foreach (...)
{
    if ($i++ % 10 == 0)
    {
        echo "</tr><tr>";
    }
    echo "<td></td>";
}
echo "</tr>";

答案 1 :(得分:2)

我喜欢使用:foreacharray_chunkimplode来执行此操作。它比增加变量更好。我建议您查看array基础知识 - 这是强大的功能。

// here's an array with integers 1 to 50, for example:
$your_array = range(1,50);

// set how many you want in each row
$per_row = 10;

print "<table cellspacing='0' cellpadding='2' border='1'>\n";

以下是您可以用以替换所拥有内容的代码:

foreach (array_chunk($your_array, $per_row) as $set_of_numbers) {
    print "<tr><td>";
    print implode('</td><td>',$set_of_numbers);
    print "</td></tr>\n";
}

结束时:

print "</table>\n";

那应该得到你描述的输出,一组表中的整数,每行10个项目。现在,如果$ your_array的大小除以10时有余数,则可能需要填充这些单元格以查看外观,但这是次要的。

<强>输出:

<table cellspacing='0' cellpadding='2' border='1'>
<tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr>
<tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr>
<tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr>
<tr><td>31</td><td>32</td><td>33</td><td>34</td><td>35</td><td>36</td><td>37</td><td>38</td><td>39</td><td>40</td></tr>
<tr><td>41</td><td>42</td><td>43</td><td>44</td><td>45</td><td>46</td><td>47</td><td>48</td><td>49</td><td>50</td></tr>
</table>