在if语句中有两个foreach循环

时间:2016-06-22 14:10:28

标签: php loops if-statement 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循环。

2 个答案:

答案 0 :(得分:3)

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

可以做的事情是这样的:

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

答案 1 :(得分:0)

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

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

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

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