通过使用键数组来取消设置数组值

时间:2016-02-25 14:55:00

标签: php arrays

我有一个看起来非常像这样的数组:

$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]]);

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]]);