php-循环时获取错误的值

php-循环时获取错误的值,php,wordpress,Php,Wordpress,我正在制作一个opportunity表单,其中我在wordpress中提供了更新和删除功能。我的问题是这个for循环有什么问题。。我得到了错误的I值。 如果我删除任何单个opportunity,则无法打印“$opportunity\u exp\u date[$i]”。你们可能很难理解,但这是我的问题。 这是我的密码 for($i=count($contact_opportunity);$i>=0;$i--){ //for listing of Won opportunities

我正在制作一个opportunity表单,其中我在wordpress中提供了更新和删除功能。我的问题是这个for循环有什么问题。。我得到了错误的I值。 如果我删除任何单个opportunity,则无法打印“$opportunity\u exp\u date[$i]”。你们可能很难理解,但这是我的问题。 这是我的密码

for($i=count($contact_opportunity);$i>=0;$i--){  //for listing of Won opportunities
    if($contact_opportunity[$i]!='0' && !empty($contact_opportunity[$i])){ ?>
    <?php if($opportunity_status[$i]=='Won'){?> 
        <div class="won-opp"><h3>Won</h3></div>              
        <?php echo "<div class='oname'>"."New Opportunity '".$contact_opportunity[$i]."' added"."</div>"; ?>
        <a href="<?php echo admin_url( "admin.php?page=contact_profile&post=$pid&opnm=$contact_opportunity[$i]&opamt=$opportunity_amount[$i]&opedt=$opportunity_exp_date[$i]&opsts=$opportunity_status[$i]&opnt=$opportunity_note[$i]" )?>"><span class="opp-edit" title="edit"></span></a> 
        <span class="btn_remove_opp" title="delete opportunity"></span>             
        <input type="hidden" value="<?php echo $contact_opportunity[$i]?>" class="del_op_nm">
        <input type="hidden" value="<?php echo $opportunity_status[$i]?>" class="del_op_sts">
        <input type="hidden" value="<?php echo $opportunity_exp_date[$i]?>" class="del_op_exp">
        <input type="hidden" value="<?php echo $opportunity_amount[$i]?>" class="del_op_amt">
        <input type="hidden" value="<?php echo $opportunity_note[$i]?>" class="del_op_nt">
        <div id="opp-list">
        <?php                       
            echo "<span class='sts'>".$opportunity_status[$i]."</span>"." Expected close on ".$opportunity_exp_date[$i]."<br>";
            echo $opportunity_amount[$i]." "."<div class='footer-op-nt'>".$opportunity_note[$i]."</div>"."<br>";
        ?>                                                              
        </div>
        <br>
    <?php }
    }
}
用于($i=count($contact_opportunity);$i>=0;$i--){//用于列出赢得的机会
如果($contact\u opportunity[$i]!='0'&&!empty($contact\u opportunity[$i]){?>
赢了

我相信您已经偏离了一步;不要在循环中使用count(),因为它的速度较慢

$count= count($contact_opportunity);
for($i=$count-1;$i>=0;--$i){ //for listing of Won opportunities

如果没有一些数据和输出,则无法计算。您可能希望切换到
foreach($i->$value)
如果删除值并中断序列,则最好对商机进行排序,然后使用foreach循环而不是for循环。排序商机还需要对所有其他数据进行排序,因为关键字不再匹配(例如,$opportunity\u note,$opportunity\u exp\u date)尽管@Adder没有指出,但他们的代码确实说明
count($contact\u opportunity)
不是最后一个元素,因为数字索引应该从0开始,所以
count($contact\u opportunity)-1
是循环的起点