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