我有一个看起来非常像这样的数组:
$array = [
0 => [
'b' => [
'classname1' => 'data1',
'classname2' => 'data2' // This one must go away
],
'classname3' => 'data3',
1 => [ ... ]
],
'a' => [ ... ],
'classnameN' => 'dataN'
];
此数组可以包含任何键(数字或字符串),可以是任何级别的深度。问题是如何通过使用一个数组来取消它的一部分,哪些值导致第一个数组中的某些数据?
例如,使用$definer = [0,'b','classname2'];
,我们必须删除数组的注释部分。
我有一个解决方法,如何找到,我需要删除,但我已经意识到,我不知道如何返回并为初始数组赋值:
$array_traveler = $array;
for($i = 0; $i < count($definer) - 1; $i++) {
$array_traveler = $array_traveler[$definer[$i]];
}
unset($array_traveler[$definer[count($definer) - 1]]);
答案 0 :(得分:1)
使用&#34;指针&#34;
$array_traveler = &$array;
for($i = 0; $i < count($definer) - 1; $i++) {
$array_traveler = &$array_traveler[$definer[$i]];
}
unset($array_traveler[$definer[count($definer) - 1]]);