消息:使用 foreach 时为 foreach() 提供的参数无效

问题描述 投票:0回答:1

我在使用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 codeigniter
1个回答
0
投票

你要尽早关闭循环。

<?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>
© www.soinside.com 2019 - 2024. All rights reserved.