有没有办法无限地深入数组

时间:2013-10-16 06:01:48

标签: php arrays

我有以下代码

foreach($arrayData as $_key_l1 => $_data_l1)
{
    if(is_array($_data_l1))
    {

    }
    else
    {
        switch($_data_l1)
        {
            case '':
                $arrayData[$_key_l1] = null;
                break;
        }
    }
}

这个想法是当$arrayData被传递到循环中时,如果数组中的任何元素本身就是一个数组,它将更深入,使用上面的代码,我会将其复制到{{1}并使用if替换变量中的_l1,其中#是我所在的级别,我还会添加另一个_l#

目前我不认为它会比3级更深,但我想它如果它可以通过数组而不必我为每个级别的深度添加代码,所以我想知道,是已经有办法做我想做但更动态的

注意:[$_key_l#]不完整,到目前为止它只是将空字符串变为空

2 个答案:

答案 0 :(得分:3)

您可以使用递归函数调用。

示例:

function step_array(&$arr) {
    foreach ($arr as $key => $val) {
        if (is_array($val)) {
            step_array($val);
        } else {
            // deal with the value
        }
    }
}

答案 1 :(得分:1)

你可以使用php的内置函数array_walk_recursive()

这是教程链接

array_walk_recursive()