isset с переменным количеством ключей массива

Массив многомерен и имеет переменное количество под-клавиш, например

$arr[$a][$b][$c] = 'X';

3 в этом случае. Я хочу создать функцию, которая принимает строку как abc как аргумент и проверяет, имеет ли массив этот ключ, а затем отключает ее: unset ($ arr [$ a] [$ b] [$ c]).

если я даю ему ab тогда он должен быть отменен ($ arr [$ a] [$ b])

Буду признателен за любую помощь …

Вот рекурсивный подход к вашей проблеме:

 function removeByStr($key, &$arr) { if(!is_array($key)) { $key = explode(".", $key); } $i = array_shift($key); if(count($key) == 0) { if(!isset($arr[$i])) { return; } unset($arr[$i]); } else if(isset($arr[$i]) && is_array($arr[$i])) { removeByStr($key, $arr[$i]); } } с function removeByStr($key, &$arr) { if(!is_array($key)) { $key = explode(".", $key); } $i = array_shift($key); if(count($key) == 0) { if(!isset($arr[$i])) { return; } unset($arr[$i]); } else if(isset($arr[$i]) && is_array($arr[$i])) { removeByStr($key, $arr[$i]); } }