我有数组$allowedViewLevels
,其中包含以下示例元素:
Array (
[0] => 1
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
[10] => 11
[11] => 12
)
我想循环遍历此数组并检查值是否等于1,8或11.如果是,则应从数组中删除相应的元素。
为此,我使用了以下脚本:
foreach ($allowedViewLevels as $key) {
if($key==1 || $key==8 || $key==11){
unset($allowedViewLevels[$key]);
}
};
$niveis=implode(",", $allowedViewLevels);
print $niveis;
返回:
1,2,3,4,6,7,8,10,11
因此,数组中包含值1,8或11的元素不会从中取消。这个脚本有什么问题?
答案 0 :(得分:2)
我自己找到了答案(在this post)
的帮助下它适用于以下内容:
$allowedViewLevels=array_diff($allowedViewLevels, array(1,8,11));
$niveis=implode(",", $allowedViewLevels);
print $niveis;
答案 1 :(得分:1)
数组包含[key] => value
。
在foreach
循环中,您应该这样参考:
foreach ($allowedViewLevels as $key=>$value) {
if ($value == 1 || $value == 8 || $value == 11) {
unset($allowedViewLevels[$key]);
}
} // Also: no semicolon here...
$niveis = implode(",", $allowedViewLevels);
echo $niveis;
但是,你自己已经找到了答案,感谢你!