0

我试图不在循环内显示特定字段,因此我需要获取所有字段类型的列表,以便我可以在 if 语句中使用它。不知道我该如何正确地做到这一点?

foreach($this->sections as $k => $section){

    foreach($section['fields'] as $k => $type){

        //This makes a nice list of all the stuff I need
        echo '<li>'.var_dump ($type['type']).'</li>';
    }     
        //Outside the loop doesn't dump all of the contents just some  
        echo '<li>'.var_dump ($type['type']).'</li>';

    if($type['type'] != 'switch'){

        //My stuff

    }

}

这个想法是循环所有字段类型,除了在 if 语句中声明的一种特定类型。for each 是这样我可以获得所有字段类型的列表。

4

1 回答 1

3

正如您可能已经体验过的那样,您建议的构造是不需要的,因为该if语句将在循环结束后执行。


您可以使用continue关键字跳转到下一个迭代并跳过您不感兴趣的字段。

foreach ($section['fields'] as $k => $type) {
    if ($type['type'] != 'switch') {
        continue;
    }

    // do stuff
}

http://php.net/manual/en/control-structures.continue.php

于 2013-08-24T13:13:28.910 回答