我怎么能循环任意数量的子阵列?

时间:2014-01-09 21:37:57

标签: php loops foreach arrays

例如:

$array = [
    [
        'Item 1',
        'Item 2',
        [
            'Item 3',
            [
                'Item 4'
            ]
        ],
        'Item 5',
        [
            'Item 6'
        ]
    ]
];

最好的方法是,例如,循环遍历数组中的每个项目,包括子数组,并回显它们,生成Item 1Item 2Item 3Item 4Item 5

我知道我在foreach里面包含了一个foreach ...但我这样做的原因是因为我希望能够存储理论上无限量的子类别,而不是限制这对我有很多道路。

2 个答案:

答案 0 :(得分:3)

这最好由递归函数而不是直接循环来处理。例如:

    function printArray($arr){
        foreach($arr as $val){
            if(is_array($val)){
               printArray($val);
            }
            else{
               echo $val;
            }
        }
    }

答案 1 :(得分:0)

function items($arr)
{
    foreach($arr as $value)
    {
        if(!is_array($value)) echo $value."\n";
        if(is_array($value)) items($value);
    }
}