Необходимо написать рекурсивную функцию обхода ассоциативного массива, которая должна показывать уровень вложенности двумя пробелами
Проходил тестовое задание на вакансию 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 = "  ";
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 = ' '){
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);
