在if语句中有两个foreach循环

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在if语句中有两个foreach循环相关的知识,希望对你有一定的参考价值。

想知道是否可以对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循环。

答案

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

你可以做的是这样的:

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

如果循环之前的条件分配将用于循环的变量,则需要执行的操作,如下所示:

if ( class_exists( 'WooCommerce' ) ) {
    $newVal = array_combine($val1, $val2);
} else {
    $newVal = $val1;
}

foreach ( $newVal as $key => $row_values ) {
    // do stuff
}

结果将与您尝试的结果相同。但是PHP中不支持您在问题中提出的语法,可以使用上面提出的方法解决。

以上是关于在if语句中有两个foreach循环的主要内容,如果未能解决你的问题,请参考以下文章

带有if和else语句的foreach循环在if语句为假时不执行else语句

在 foreach 循环中的 if 语句中的 while 循环...无法正常工作

foreach语句遍历数组

循环中的 Roblox Studio Lua if 语句

foreach跳出循环不往下走

使用多个 foreach 循环时多次使用 PDO 语句