我正试图将两个foreach
循环重写为for
循环,以便我能够在3处停止它们。下面是第一个简单循环的原始代码:
<?php foreach ($marketing[0]['values'] as $company) { ?>
<tr>
<td><?php echo $company['label']; ?></td>
<td><?php echo $company['value']; ?></td>
</tr>
<?php } ?>
这是我尝试重写的:
<?php
for($i = 0; $i < 4; ++$i) {
$company = $marketing[0][$i]['values'];
?>
<tr>
<td><?php echo $company['label']; ?></td>
<td><?php echo $company['value']; ?></td>
</tr>
<?php } ?>
这是第二个稍微复杂一点的foreach
循环,我还没有尝试过。
<?php foreach ($sales as $sale) { ?>
<tr>
<td><?php echo $sale['key']; ?></td>
<td>
<?php
foreach ($sale['values'] as $values) {
if ($values['x'] == $currentTeam) {
echo $values['y'];
}
}
?>
</td>
</tr>
<?php } ?>
你总是可以使用break。http://php.net/manual/en/control-structures.break.php
<?php $counter = 0; ?>
<?php foreach ($marketing[0]['values'] as $company) { ?>
<?php if ($counter == $maxLimit) break; ?>
<tr>
<td><?php echo $company['label']; ?></td>
<td><?php echo $company['value']; ?></td>
</tr>
<?php $counter++; ?>
<?php } ?>
你已经快到那里了
<?php
$maxLimit = 3; //you could get maxlimit from elsewhere rather than hardcoding it
//use count() to get the length of an array in PHP
for($i = 0; $i < count($marketing[0]); ++$i)
{
$company = $marketing[0][$i]['values'];
if($i > $maxLimit) break;
?>
<tr>
<td><?php echo $company['label']; ?></td>
<td><?php echo $company['value']; ?></td>
</tr>
<?php } ?>
作为一种替代方法,您可以在
一侧引入一个反字段。 <?php
$salesCounter = 0;
$maxSalesCounter = 3;
foreach ($sales as $sale)
{
?>
<tr>
<td><?php echo $sale['key']; ?></td>
<td>
<?php
foreach ($sale['values'] as $values)
{
if($salesCounter > maxSalesCounter) break;
if ($values['x'] == $currentTeam)
{
echo $values['y'];
$salesCounter++;
}
}
?>
</td>
</tr>
<?php } ?>