【问题标题】:PHP How to display some values of multidimensional array with for loopPHP如何使用for循环显示多维数组的一些值
【发布时间】:2021-05-14 14:26:03
【问题描述】:

我循环遍历一个多维数组,以将每个“行”的前五个值作为表格回显。就这一点而言,它完美无缺:

"<table>";
for ($row = 0; $row < $index_number; $row++) {
  echo  "<tr>";
  for ($col = 0; $col < 5; $col++) {
   echo "<td>".$tablevalue[$row][$col]."</td>";
  }
echo "</tr>";
}
echo"</table>";

现在我想显示数字 1 到 3,然后再显示 8 和 9。没有一个 for 循环在另一个循环中,也没有两个单独的循环按我希望的方式工作。
这就是我到目前为止所尝试的:

echo "<table>";
for ($row = 0; $row < $index_number; $row++) {
  echo  "<tr>";
  for ($col = 0; $col < 3; $col++ && $col2 = 8; $col2 < 10; $col2++) {
   echo "<td>".$tablevalue[$row][$col]."</td>";
  }
echo "</tr>";
}
echo"</table>";

关于如何使它工作的任何想法?

【问题讨论】:

  • 你放弃了吗?

标签: php for-loop multidimensional-array


【解决方案1】:

如果您的整数索引从 0 开始,则对于您的内部循环,只需使用条件:

foreach($tablevalue[$row] as $col => $val) {
    if($col < 3 || ($col > 7 && $col < 10)) {
        echo "<td>$val</td>";
    }
}

但是,正如您所见,foreach 对整个事情来说要容易得多:

foreach($tablevalue as $row) {
    echo "<tr>";
    foreach($row as $col => $val) {
        if($col < 3 || ($col > 7 && $col < 10)) {
            echo "<td>$val</td>";
        }
    }
    echo "</tr>";
}

如果你没有从 0 开始的整数索引,那么只需 foreach(array_values($tablevalue)...foreach(array_values($row)... 或者你可以切片你想要的和 implode

foreach($tablevalue as $row) {
    echo "<tr><td>";
    echo implode("</td><td>", array_slice($row, 0, 3, true) + 
                              array_slice($row, 7, 2, true));
    echo "</td></tr>";
}

【讨论】:

    猜你喜欢
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多