3

我想只使用 For 循环在表中打印一个多维数组。这是$myArray

$myArray =    Array(
[0] => Array
    (
        [0] => 598
        [1] => Introducing abc
        [2] => 
    )
[1] => Array
    (
        [0] => 596
        [1] => Big Things Happening at abc
        [2] => 
    )
[2] => Array
    (
        [0] => 595
        [1] => Should I send abc?
        [2] => 
    )
[3] => Array
    (
        [0] => 586
        [1] => Things you need to know about abc :P
       [2] => 
    )  

);

将新数组更新为var_dump($myArray );

4

5 回答 5

28

有很多不同的方法可以解决这个问题,所以为什么不找点乐子呢。

如果您必须使用 for 循环

不知道你为什么会,除非是为了学校作业:

for($i=0;$i<count($data);$i++) {
  echo('<tr>');
  echo('<td>' . $data[$i][0] . '</td>');
  echo('<td>' . $data[$i][1] . '</td>');
  echo('<td>' . $data[$i][2] . '</td>');
  echo('</tr>');
}

但是直接访问 ID 有点愚蠢,让我们在行中使用另一个 for 循环:

for($i=0;$i<count($data);$i++) {
  echo('<tr>');
  for($j=0;$j<count($data[$i]);$j++) {
    echo('<td>' . $data[$i][$j] . '</td>');
  } 
  echo('</tr>');
}

用同样无聊的 foreach 循环替换它:

<table>
<?php foreach($items as $row) {
  echo('<tr>');
  foreach($row as $cell) {
    echo('<td>' . $cell . '</td>');
  }
  echo('</tr>');
} ?>
</table>

为什么不内爆数组:

<table>
<?php foreach($items as $row) {
  echo('<tr>');
  echo('<td>');
  echo(implode('</td><td>', $row);
  echo('</td>');
  echo('</tr>');
} ?>
</table>

把它混合起来,拧紧前叉,然后去散步;并一路爆破东西:

<?php
function print_row(&$item) {
  echo('<tr>');
  echo('<td>');
  echo(implode('</td><td>', $item);
  echo('</td>');
  echo('</tr>');
}
?>

<table>
  <?php array_walk($data, 'print_row');?>
</table>

双走... OMG

是的,现在看起来有点傻,但是当你扩大表格并且事情变得更复杂时,事情会更好地分解和模块化:

<?php
function print_row(&$item) {
  echo('<tr>');
  array_walk($item, 'print_cell');
  echo('</tr>');
}

function print_cell(&$item) {
  echo('<td>');
  echo($item);
  echo('</td>');
}
?>

<table>
  <?php array_walk($data, 'print_row');?>
</table>
于 2013-04-22T07:31:25.403 回答
4

使用这个,实际上是两个嵌套for循环:

print('<table>');
for($i = 0; $i < count($array); $i++) {
    print('<tr>');
    for($ii = 0; $ii < count($array[$i]); $ii++) {
        print("<td>{$array[$i][$ii]}</td>");
    }
    print('</tr>');
}
print('</table>');
于 2013-04-22T07:30:36.083 回答
3

这样做

echo "<table>";
for($i=0;$i<count($your_array);$i++) {
     echo "<tr><td>".$your_array[$i][0]."</td>";
     echo "<td>".$your_array[$i][1]."</td>";
     echo "<td>".$your_array[$i][2]."</td></tr>";
}
echo "</table>";
于 2013-04-22T07:28:49.270 回答
3
echo '<table>';
for($i=0;$i<count($array);$i++) {
 echo '<tr><td>'.$array[$i][0].'</td>';
 echo '<tr><td>'.$array[$i][1].'</td>';
 echo '<tr><td>'.$array[$i][2].'</td></tr>';
}
echo '</table>';
于 2013-04-22T07:32:22.323 回答
2

做这个

$arr as your array 

然后

echo "<table>";
for($i = 0; $i<count($arr); $i++)
{


    echo '<tr><td>'.$arr[$i][0].'</td>';
    echo '<tr><td>'.$arr[$i][1].'</td>';
    echo '<tr><td>'.$arr[$i][2].'</td></tr>';
}
echo "</table>";
于 2013-04-22T07:29:10.653 回答