我们如何在foreach循环中使用条件

时间:2014-07-06 06:15:09

标签: php foreach

以下foreach查询仅在['选项'] ['颜色']中插入值,而不是['选项'] [' ;颜色'] ???

更新了问题:

if (!is_array($value['options']['Colors'])) {
$value['options']['Colors'] = array($value['options']['Colors']);
}
if (!is_array($value['options']['Color'])) {
$value['options']['Color'] = array($value['options']['Color']);
}

if(isset($value['options']['Colors'])) {
$colorArr = $value['options']['Colors'];
} else if(isset($value['options']['Color'])) {
$colorArr = $value['options']['Color'];
}

foreach ($colorArr as $colors) {
$stmt->execute(array(':pid' => $PID, ':colors' => $colors));
}  

4 个答案:

答案 0 :(得分:0)

你不能这样做......它没有意义。你究竟想做什么?

如果要检查数组中是否存在值,可以使用in_array函数,如下所示:

if(in_array("someValue", $someArray)) {
    // Do something ...
}

答案 1 :(得分:0)

我们不能在foreach循环中使用OR。相反,我们可以使用if语句进行验证,然后可以继续进行如下操作:

if(isset($value['media']['options']['Colors'])) {
    $colorArr = $value['media']['options']['Colors'];
} else if(isset($value['media']['options']['colors'])) {
    $colorArr = $value['media']['options']['colors'];
}

foreach ($colorArr as $colors) {
    // You can use $colors now where you want
} 

答案 2 :(得分:0)

如果你真的坚持让数组使用任何一个键,我建议你在使用它们之前将它们全部转换为小写

foreach($value['media']['options'] as &$key => $value){
    if($key == 'Colors'){
        $key = 'colors';
    }
}

然后像以前一样尝试使用数组,但不需要OR语句检查' Colors'

答案 3 :(得分:0)

你可以合并数组然后循环,但要注意关键的冲突。一个选项可以同时具有“颜色”和“颜色”,在这种情况下它可以非常快速地混乱,您使用哪一个,第一个,第二个,两者都没有?

    $colors = array_merge ($value['media']['options']['Colors'], $value['media']['options']['colors'] );

foreach($colors as $color ){

}