如何取消设置()多维度数组的某些部分?
我有一个类似的阵列
$list['A_1']['AA_2']['AAA_3']['AAAA_4'] = 'stuff';
$list['B_1']['BB_2']['BBB_3'] = 'stuff';
$list['C_1']['CC_2']['CCC_3']['CCCC_4']['CCCCC_5']['CCCCCC_6']['CCCCCCC_7']['CCCCCCCC_8'] = 'stuff';
$list['D_1']['DD_2']['DDD_3']['DDDD_4']['DDDDD_5'] = 'stuff';
通常我会用做我想要的取消设置()
unset( $list['A_1']['AA_2']['AAA_3'] );
unset( $list['B_1']['BB_2']['BBB_3'] );
unset( $list['C_1']['CC_2']['CCC_3']['CCCC_4']['CCCCC_5'] );
unset( $list['D_1']['DD_2']['DDD_3']['DDDD_4'] );
然而,我想通过使用另一个数组中的元素来取消设置它们来获得相同的结果:
$result = array('A_1','AA_2','AAA_3');
$result = array('B_1','BB_2','BBB_3');
$result = array('C_1','CC_2','CCC_3','CCCC_4','CCCCC_5');
$result = array('D_1','DD_2','DDD_3','DDDD_4');
我试着用我能想象到的最简单的方式来处理它但遗憾的是,它没有那么容易,也不起作用:
$result = array('A_1','AA_2','AAA_3');
unset( $list[$result] );
退货:警告:未设置的中存在非法偏移类型
这应该是
function unsetArray(&$list, $result) {
eval("unset("."'$list['".implode("']['", $result)."']".");");
}
unsetArray($list, $result);
var_dump($list);
您需要形成要取消设置的多重校正数组。这里使用的是一维数组。只需在结果数组中形成数组内部的数组。
谢谢。