Необходимо написать рекурсивную функцию обхода ассоциативного массива, которая должна показывать уровень вложенности двумя пробелами

Задание

Проходил тестовое задание на вакансию junior php разраб, мне дали 5 заданий, их надо было сделать за 30мин, я понял что мне еще учиться и учиться что бы за 30 минут сделать такие вещи, так вод провожу рабор этих заданий, сижу уже часа 3, не понимаю как его сделать

$arr = array(
    'level1' => array('level1.1', 'level1.2'),
    'level2',
    'level3' => array('level3.1', 'level3.2' => array('level3.2.1', 'level3.2.2'), 'level 3.3'),
    'level4' => array('level4.1', 'level4.2', 'level4.3', 'level4.4'),
);

function recurseArray($arr, $lvl = 0)

{
    $probel = "&nbsp&nbsp";

    foreach ($arr as $key => $value) {

        if (is_array($value)) {

            for ($i = 0; $i < $lvl; $i++) {
                echo $probel;
            }

            echo '[' . $key . ']</br>';

            recurseArray($value, $lvl += 1);
        } else {

            for ($i = 0; $i < $lvl; $i++) {
                echo $probel;
            }

            echo $key . ' => ' . $value . '</br>';
        }
    }
}

recurseArray($arr);

Ответы (1 шт):

Автор решения: Максим Степанов
$arr = array(
    'level1' => array('level1.1', 'level1.2'),
    'level2',
    'level3' => array('level3.1', 'level3.2' => array('level3.2.1', 'level3.2.2'), 'level 3.3'),
    'level4' => array('level4.1', 'level4.2', 'level4.3', 'level4.4'),
);

function printArr($arr, $lvl = 0, $prefix = '&nbsp;&nbsp;'){
    foreach ($arr as $key => $val){
        for($i = 0; $i < $lvl; $i++){
            echo $prefix;
        }
        if(is_array($val)){
            echo $key . '<br />';
            printArr($val, $lvl + 1);
        } else {
            echo $val . '<br />';
        }
    }
}

printArr($arr);
→ Ссылка