PHP在循环中取消设置数组

时间:2013-12-11 04:56:49

标签: php arrays

我正在尝试修改名为 field_data 的现有数组,并删除具有key->value的{​​{1}}对的父数组。所以在这个例子中我想取消设置Array [1]。然而,它不起作用,我做错了什么?

control == off

3 个答案:

答案 0 :(得分:2)

您正在尝试删除PHP仍在使用的变量,特别是内循环正在循环的数组。

你检查你的方式甚至不需要内循环。我会做这样的事情:

foreach( $field_data[0] as $skey => $svalue ) {
    if( array_key_exists('Control', $svalue) && $svalue['Control'] == 'OFF' ) {
        unset($field_data[0][$skey]);
    }
}

答案 1 :(得分:0)

试试这个......

unset($field_data[0][$subsection]);

答案 2 :(得分:0)

我认为你不应该修改你正在迭代的数组。 创建一个要删除的键数组,然后迭代结果和取消设置键

$targets = array(); 
foreach( $field_data[0] as $skey => $svalue ) {
if( array_key_exists('Control', $svalue) && $svalue['Control'] == 'OFF' ) {
    targets[] = $skey;
}

foreach($targets as $target)
{
     unset($field_data[0][$target]);
}
相关问题