使用if else条件在foreach循环中显示消息

时间:2014-02-26 16:55:07

标签: php foreach

如果foreach循环中的条件为false,我想显示错误消息。这是我的代码

foreach($items as $item){
    if($item['userid'] == logged_in()) {
        echo $item['title'];
    } else {
        echo 'You do not have permission to view items';
    }
}

// other code here needs to continue after loop

因此,使用上面的代码,错误消息会显示循环运行的时间。因此,如果有5个项目而不是消息显示5次。虽然如果条件为假,我只想显示一次。我试过break;continue;,但都停止执行进一步的PHP代码。

foreach($items as $item){
    if($item['userid'] == logged_in()) {
        echo $item['title'];
    } else {
        echo 'You do not have permission to view items';
        break; // or continue
    }
}

// other code here needs to continue after loop

那么我该怎么做才能显示这条消息,还会执行另外的代码?

2 个答案:

答案 0 :(得分:4)

使用此 -

$once=false;
foreach($items as $item){
    if($item['userid'] == logged_in()) {
        echo $item['title'];
    } else {             
       $once=true;
    }
}

if($once)
   echo 'You do not have permission to view items';

答案 1 :(得分:3)

您不想中断或继续,因为您想继续测试循环中的每个项目。而是标记错误并继续循环:

$permissionError = 0;
foreach($items as $item){
    if($item['userid'] == logged_in()) {
        echo $item['title'];
    } else {
        $permissionError = 1;
    }
}
if($permissionError) {
    echo 'You do not have permission to view all items';
}