如何计算数组级别" deep" PHP中数组的每个级别上的总元素数和数量

时间:2018-01-30 16:29:30

标签: php arrays recursion multidimensional-array

我尝试在函数中执行递归数组,以获取多维数组的每个级别的所有级别数和总元素数。

我需要帮助才能实现这个目标,而且我无法提供良好的解决方案。

我的数据

$tree = array(
        'room1' => array(
                'room5',
                'room6'
            ),
        'room2' => array(
                'room5',
                'room6'
            ),
        'room3' => array(
                'room7' => array(
                        'room12' => array(
                                'room14',
                                'room15'
                            ),
                        'room13'
                    ),
            ),
        'room4' => array(
                'room8',
                'room9',
                'room10',
                'room11'
            )
);

期望的结果

Array(
    'level1' => 4,
    'level2' => 9,
    'level3' => 2,
    'level4' => 2
)

我的代码

function treeOut($tree)
{
    $markup = '';
    $count = 0;
    foreach($tree as $branch => $twig)
    {
        $count++;
        ((is_array($twig)) ? treeOut($twig,$count) : $count++;
    }
    return $count

}

echo treeOut($tree);

1 个答案:

答案 0 :(得分:0)

第一次尝试

label: '<b>3306</b>\n3307\n3308'

demo