【问题标题】:Change a while loop to foreach?将while循环更改为foreach?
【发布时间】:2017-03-29 10:04:13
【问题描述】:

我即将将代码更改为“WordPress 自定义代码”(使用 $wpdb)。使用$wpdb->get_results(),我得到一个需要用foreach 循环输出的数组。但问题是我当前的 while 循环中有一个“$initial_hidden 语句”,我不知道如何处理新的 foreach。

这是我当前的代码:

while (($initial_hidden == true) || ($r = mysql_fetch_assoc($q))) {

...

}

那么,我该如何获得“初始隐藏”:

foreach ($q as $r) {

...

}

【问题讨论】:

  • 好的,“WordPress 代码”。我的意思是使用 $wpdb...
  • for($i = 0; (i
  • Marcin Orlowski:不一定是 foreach。但我必须能够以任何方式循环 get_results() 的输出。而且由于我不能用while来做,我只是想到了foreach。我猜 Hienz 方法有效。然后我使用 $q[$i] 从数组中输出数据?
  • 是的,正是……

标签: php wordpress foreach


【解决方案1】:

那么,我如何获得“初始隐藏”这个

您可以用常规的break; 中止foreach,因此只需在循环体中添加if() 并在满足条件时添加break

foreach($q as $r) {
     ...

   if ($initial_hidden) {
      break;
   }
}

【讨论】:

    【解决方案2】:

    请使用这行代码:$r = mysql_fetch_assoc($q); if(($initial_hidden) || (mysql_num_rows($q) > 0)) { foreach($r as $key => $value) { //result } }

    【讨论】:

      【解决方案3】:

      你也可以在while循环中使用foreach

      while (($initial_hidden == true) || !empty(mysql_fetch_assoc($q))) {
      foreach($r = mysql_fetch_assoc($q)){
      }
      ...
      
      } 
      

      【讨论】:

      • 但是 initial_hidden 的作用是处理迭代中的所有内容,即使数组为空。这不适合你的方法。
      • 你可以使用!empty in while
      猜你喜欢
      • 2018-08-13
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 2020-08-28
      • 2014-12-11
      • 2022-01-19
      相关资源
      最近更新 更多