PHP适用于foreach循环结果中的条件

时间:2016-12-08 11:49:01

标签: php

我对PHP知之甚少,感谢您的帮助。

我在PHP中创建了一个数据库查询和foreach循环,用于从数据库中获取数据, 这是我的foreach代码:

if($user->id != 0)
{
    foreach ( $results as $result) {
        $leftday = $result->dayleft;
        $subsexp   = "-";

        if( strpos( $leftday, $subsexp ) !== false ) {
            echo "Subscription Expired<br>";
        } else {
            echo "Subscription Active<br>";
        }
    }

}

这里结果如预期:

  • 订阅已过期
  • 订阅已过期
  • 订阅有效
  • 订阅有效

但是,如果没有任何“订阅活动”,我怎么才能显示一个“订阅已过期”文本?现在,当所有订阅过期时,它会显示4次“Subscription Expired”文本。

1 个答案:

答案 0 :(得分:0)

如果你的意思是

&#34;当所有订阅过期时,只显示一次消息&#34;然后使用数组来存储结果(活动/过期)。一旦存储了所有结果,您就可以处理该数组(如果所有结果都已过期,则执行此操作)。 如果你像现在一样立即回复那些结果,而不存储结果,你就不能对它们采取行动,例如:

<?php

$results = [];
$results['active'] = 0;
$results['expired'] = 0;
if($user->id != 0)
{
    foreach ( $results as $result) {
        $leftday = $result->dayleft;
        $subsexp   = "-";

        if( strpos( $leftday, $subsexp ) !== false ) {
            $results['expired']++;
        } else {
            $results['active']++;
        }
    }

}    //all expired
if(0 == $results['active']){
    //do something
}