如何选择循环?

时间:2012-10-04 00:38:29

标签: php for-loop

我有一个复杂的场景,我需要运行一个for循环,它应该一直运行,不依赖于变量,但如果存在变量DOES(意味着它不等于'')那么我需要检查另一个。如果两个条件都为真,那么它应该继续。令人困惑,但很难解释让我尝试告诉你:

$ subcat在for循环

之前的其他地方定义
for($i=0; $i<sizeof($news_posts); ++$i)
    $subcategory = $news_posts[$i]['subcategory'];

    if( $subcat != '' && $subcat == $subcategory){
    CONSEQUENT XYZ.

所以基本上。我需要这个for循环来执行XYZ EVERYTIME。但是如果存在IF Subcat,那么它只需要显示subcat与子类别相同的结果。

  1. 每次都跑
  2. 如果subcat不存在,请显示每个条目。
  3. 如果存在subcat DOES,请检查subcat == subcategory
  4. 如果subcat执行== subcategory,则显示其子类别与子cat相同的每个条目。
  5. 怎么办这样的事?

2 个答案:

答案 0 :(得分:0)

使用isset()测试变量的存在性: php man isset

答案 1 :(得分:0)

for($i = 0; $i < sizeof($news_posts); ++$i) {
    $subcategory = $news_posts[$i]['subcategory'];

    //Show entry only if subcat is not set OR if it is set and matches the subcategory
    if(!isset($subcat) || ($subcat == $subcategory)) {
        //Do show entry stuff
    }
}

应该是不言自明的,这是你似乎正在寻找的条件。如果设置了$subcat,则只有与子类别匹配的迭代才会运行show entry代码,否则所有迭代都将运行它。

因为isset是一个语言结构而不是一个函数,并且因为如果该语句的第一个条件为真,则忽略第二个条件,如果永远不会声明$subcat,则上面的代码不会引发错误,相反到原始代码。