以下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));
}
答案 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 ){
}