您好,我最近刚刚开始使用PHP,而我正在尝试学习数组。下面是一个我正在查看的数组,并不太明白它如何输出数组的列。我不明白$ row和$ col突然只输出数组的前2列,以及输出第3列需要做什么。
$shop = array( array("rose", 1.25 , 15),
array("daisy", 0.75 , 25),
array("orchid", 1.15 , 7)
);
echo "<h1>Using loops to display array elements</h1>";
echo "<ol>";
for ($row = 0; $row < 3; $row++)
{
echo "<li><b>The row number $row</b></li>";
echo "<ul>";
for ($col = 0; $col < 3; $col++)
{
echo $shop [$row] [$col];
}
echo "</ul>";
echo "</li>";
}
echo "</ol>";
答案 0 :(得分:4)
实际上,执行脚本时会显示三行。使用php 5.5进行测试时,输出为:
<h1>Using loops to display array elements</h1>
<ol>
<li><b>The row number 0</b></li>
<ul>rose1.2515</ul></li>
<li><b>The row number 1</b></li>
<ul>daisy0.7525</ul></li>
<li><b>The row number 2</b></li>
<ul>orchid1.157</ul></li>
</ol>
这里的问题是你的HTML语法。仔细观察,您会看到每个<ul>
块后跟</li>
,后者永远不会被预期的<li>
打开。
要尊重标准,您还应该将生成的每个<ul>
的每个元素都放在<li>
块中。
结果应如下所示:
<h1>Using loops to display array elements</h1>
<ol>
<li><b>The row number 0</b></li>
<ul>
<li>rose</li>
<li>1.25</li>
<li>15</li>
</ul>
<li><b>The row number 1</b></li>
<ul>
<li>daisy</li>
<li>0.75</li>
<li>25</li>
</ul>
<li><b>The row number 2</b></li>
<ul>
<li>orchid</li>
<li>1.15</li>
<li>7</li>
</ul>
</ol>
希望这有帮助!
编辑:你也可以使用PHP原生函数array_column
,这里是documentation link。
答案 1 :(得分:1)
它输出所有三列,但有点混乱。尝试在值之间添加空格或其他内容:
echo $shop[$row][$col] . ' ';
或将其显示在表格中:
echo "<table border='1'>";
for ($row = 0; $row < 3; $row++)
{
echo "<tr><td>Row number $row</td>";
for ($col = 0; $col < 3; $col++)
{
echo '<td>' . $shop[$row][$col] . '</td>';
}
echo "</tr>";
}
echo "</table>";
答案 2 :(得分:0)
$shop = array( array("rose", 1.25 , 15),
array("daisy", 0.75 , 25),
array("orchid", 1.15 , 7)
);
echo "<h1>Using loops to display array elements</h1>";
echo "<ol>";
for ($row = 0; $row < count($row); $row++)
{
echo "<li><b>The row number $row</b></li>";
echo "<ul>";
for ($col = 0; $col < count($shop[$row]); $col++)
{
echo "<li>";
echo $shop [$row] [$col];
echo "</li>";
}
echo "</ul>";
echo "</li>";
}
echo "</ol>";