PHP Arrays输出理解

时间:2015-11-26 19:22:21

标签: php arrays

您好,我最近刚刚开始使用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>";

3 个答案:

答案 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] . '&nbsp;';

或将其显示在表格中:

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>";