0

我有以下代码

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

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

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

目前我不希望它比 3 个级别更深,但是我希望它可以通过数组而无需我为每个深度级别添加代码,所以我想知道,是否已经有一个做我想做的事,但更有活力

注意:switch ... case是不完整的,到目前为止它只是将空白字符串变成 null

4

2 回答 2

3

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

例子:

function step_array(&$arr) {
    foreach ($arr as $key => $val) {
        if (is_array($val)) {
            step_array($val);
        } else {
            // deal with the value
        }
    }
}
于 2013-10-16T06:04:49.937 回答
1

您可以使用名为 array_walk_recursive() 的 php 内置函数

这是教程链接

array_walk_recursive()

于 2013-10-16T06:14:09.053 回答