我在使用foreach时遇到问题,可以在下面看到错误以及代码
每次都会遇到 PHP 错误:警告
消息:为 foreach() 提供的参数无效
这是代码:
<tbody>
<?php
$no = 1;
$marketSize = 0;
$pmarketShare = 0;
$cmarketShare = 0;
$rprevenue = 0;
$prevenue = 0;
$crevenue =0;
if($value['data']->num_rows() > 0):
foreach ($value['data']->result() as $row):
$marketSize += $row->total_size;
$pmarketShare += $row->avg_share;
$cmarketShare += $row->sum_share;
$rprevenue =0;
$prevenue =0;
$crevenue =0;
?>
<?php endforeach; endif;?>
<?php
foreach ($data as $row) : ?>
<?php endforeach;?>
<tr>
<td width="10px"><?= $no++ ?></td>
<td>
<a data-market="<?= $row->kota; ?>" data-tahun="<?= $filter['yearstart']; ?>">
<?= $row->kota; ?>
</a>
</td>
<td class="text-right">
<a data-market="<?= $row->total_size; ?>" data-tahun="<?= $filter['yearstart']; ?>">
<?= number_format($row->total_size, 2, ',', '.') ?>
</a>
</td>
<td class="text-right">
<a data-market="<?= $row->avg_share; ?>" data-tahun="<?= $filter['yearstart']; ?>">
<?= number_format($row->avg_share, 2, ',', '.'). "%" ?>
</a>
</td>
<td class="text-right">
<a data-market="<?= $row->sum_share; ?>" data-tahun="<?= $filter['yearstart']; ?>">
<?= number_format($row->sum_share, 2, ',', '.') ?>
</a>
</td>
<td class="text-right">
<a data-market="0" data-tahun="<?= $filter['yearstart']; ?>">
<?= number_format($rprevenue, 2, ',', '.') ?>
</a>
</td>
<td class="text-right">
<a data-market="0" data-tahun="<?= $filter['yearstart']; ?>">
<?= number_format($prevenue, 2, ',', '.') ?>
</a>
</td>
<td class="text-right">
<a data-market="0" data-tahun="<?= $filter['yearstart']; ?>">
<?= number_format($crevenue, 2, ',', '.') ?>
</a>
</td>
</tr>
</tbody>
我尝试制作表格,但它只显示 1 列,因为该错误
你要尽早关闭循环。
<?php foreach ($data as $row) : ?>
<?php endforeach; ?>
尝试像下面这样改变
<?php
$no = 1;
$marketSize = 0;
$pmarketShare = 0;
$cmarketShare = 0;
$rprevenue = 0;
$prevenue = 0;
$crevenue = 0;
?>
<?php if($value['data']->num_rows() > 0) : ?>
<?php foreach ($value['data']->result() as $row) : ?>
<?php $marketSize += $row->total_size;
$pmarketShare += $row->avg_share;
$cmarketShare += $row->sum_share;
$rprevenue = 0;
$prevenue = 0;
$crevenue = 0;
?>
<?php endforeach; ?>
<?php endif; ?>
<?php foreach ($data as $row) : ?>
<tr>
<td width="10px"><?php $no++ ?></td>
<td>
<a data-market="<?php $row->kota; ?>" data-tahun="<?php $filter['yearstart']; ?>">
<?php $row->kota; ?>
</a>
</td>
<td class="text-right">
<a data-market="<?php $row->total_size; ?>" data-tahun="<?php $filter['yearstart']; ?>">
<?php number_format($row->total_size, 2, ',', '.'); ?>
</a>
</td>
<td class="text-right">
<a data-market="<?php $row->avg_share; ?>" data-tahun="<?php $filter['yearstart']; ?>">
<?php number_format($row->avg_share, 2, ',', '.') . "%"; ?>
</a>
</td>
<td class="text-right">
<a data-market="<?php $row->sum_share; ?>" data-tahun="<?php $filter['yearstart']; ?>">
<?php number_format($row->sum_share, 2, ',', '.'); ?>
</a>
</td>
<td class="text-right">
<a data-market="0" data-tahun="<?php $filter['yearstart']; ?>">
<?php number_format($rprevenue, 2, ',', '.'); ?>
</a>
</td>
<td class="text-right">
<a data-market="0" data-tahun="<?php $filter['yearstart']; ?>">
<?php number_format($prevenue, 2, ',', '.'); ?>
</a>
</td>
<td class="text-right">
<a data-market="0" data-tahun="<?php $filter['yearstart']; ?>">
<?php number_format($crevenue, 2, ',', '.'); ?>
</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>