【问题标题】:two foreach loop on if statementif 语句上的两个 foreach 循环
【发布时间】:2016-06-22 14:10:28
【问题描述】:

想知道是否可以像这样对 if 语句进行 foreach 循环调用:

if (class_exists('WooCommerce')) { 
    foreach (array_combine($val1, $val2) as $key => $row_values)
}
else {
    foreach ( $val1 as $key => $row_values ) 
}

{ begin of loop code

我想要做的是,如果 woocommerce 插件处于活动状态,则创建一个 foreach 循环;如果 woocommerce 插件未处于活动状态,则创建另一个 foreach 循环。

【问题讨论】:

  • 不明白你的意思。您的 if() 语句中已经有两个 foreaches。
  • 没有。您可以将数组分配给 if/else 中的变量,然后在 foreach 循环中使用分配的数组。
  • 你能和我们分享你想要做什么吗?

标签: php loops if-statement foreach


【解决方案1】:

这是不可能的,因为这是无效的语法。

可以做的事情是这样的:

<?php
$iterationArray = class_exists('WooCommerce') ? array_combine($val1, $val2) : $val1;
foreach ($iterationArray as $key => $row_values) {
    // begin of loop code
} // end loop

【讨论】:

    【解决方案2】:

    如果在循环之前有一个条件来分配你将用于循环的变量,你需要做什么,就像这样:

    if ( class_exists( 'WooCommerce' ) ) {
        $newVal = array_combine($val1, $val2);
    } else {
        $newVal = $val1;
    }
    
    foreach ( $newVal as $key => $row_values ) {
        // do stuff
    }
    

    结果将与您尝试执行的操作相同。但是您在问题中提出的语法在 PHP 中不受支持,可以按照上面提出的方式解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      相关资源
      最近更新 更多