isset与变量数组键计数

时间:2012-02-04 22:59:00

标签: php arrays

该数组是多维的,具有可变数量的子键,如

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

在这种情况下,

3。我想创建一个函数,它接受类似a.b.c的字符串作为参数,并检查数组中是否有该键,然后取消设置:unset($ arr [$ a] [$ b] [$ c])

如果我给它a.b那么它应该取消($ arr [$ a] [$ b])

我很感激任何帮助...

1 个答案:

答案 0 :(得分:2)

这是针对您的问题的递归方法:

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