我正在尝试学习如何遍历嵌套数组并创建PHP表。
我无法弄清楚如何循环,以便每个数组都在自己的<tr>
标记中。
我使用for循环为每个数组创建<tr>
。但是我想我想念怎么做。它在创建新的<tr>
之前循环遍历两个数组。
PHP代码:
<?php
//Lets make a table
$rows = array(
array(
'color' => 'red',
'make' => 'Ferrari',
'price' => 3000
),
array(
'color' => 'blue',
'make' => 'BMW',
'price' => 1000
)
);
?>
<table border='1'>
<tr>
<th>Colour</th>
<th>Make</th>
<th>Price</th>
</tr>
<?php
for($i = 0; $i < count($rows); $i++){
echo '<tr>';
foreach($rows as $rowkey => $row){
echo '<td>' . $row['color']. '</td>';
echo '<td>' . $row['make'] . '</td>';
echo '<td>' . $row['price'] . '</td>';
}
echo '</tr>';
}
?>
</table>
结果:
<table border='1'>
<tr>
<th>Colour</th>
<th>Make</th>
<th>Price</th>
</tr>
<tr>
<td>red</td>
<td>Ferrari</td>
<td>3000</td>
<td>blue</td>
<td>BMW</td>
<td>1000</td>
</tr>
<tr>
<td>red</td>
<td>Ferrari</td>
<td>3000</td>
<td>blue</td>
<td>BMW</td>
<td>1000</td>
</tr>
</table>
如何遍历这种数组并为每个嵌套数组创建一个新的<tr>
?
答案 0 :(得分:3)
试试这个,松开外面的for循环:
<?php
$rows = array(
array(
'color' => 'red',
'make' => 'Ferrari',
'price' => 3000
),
array(
'color' => 'blue',
'make' => 'BMW',
'price' => 1000
)
);
?>
<table border='1'>
<tr>
<th>Colour</th>
<th>Make</th>
<th>Price</th>
</tr>
<?php foreach ($rows as $key => $row): ?>
<tr>
<td><?= $row['color'] ?></td>
<td><?= $row['make'] ?></td>
<td><?= $row['price'] ?></td>
</tr>
<?php endforeach; ?>
</table>
答案 1 :(得分:2)
您应该选择并使用两个循环中的一个:
或者:
for($i = 0; $i < count($rows); $i++){
echo '<tr>';
echo '<td>' . $rows[$i]['color']. '</td>';
echo '<td>' . $rows[$i]['make'] . '</td>';
echo '<td>' . $rows[$i]['price'] . '</td>';
echo '</tr>';
}
或者:
foreach($rows as $rowkey => $row){
echo '<tr>';
echo '<td>' . $row['color']. '</td>';
echo '<td>' . $row['make'] . '</td>';
echo '<td>' . $row['price'] . '</td>';
echo '</tr>';
}
因为现在你将数组循环两次:
for
循环foreach
循环