villiwalla
@villiwalla
HTML-верстка

Перебор ассоциативного массива?

Добрый день! Укажите на причину получаемых ошибок при переборе многомерного ассоциативного массива.
$leftMenu = [
    ["link"=>'Домой', 'href'=>'index.php'],
    ['link'=>'О нас', 'href'=>'about.php'],
    ['link'=>'Контакты', 'href'=>'contact.php'],
    ['link'=>'Таблица умножения', 'href'=>'table.php'],
    ['link'=>'Калькулятор', 'href'=>'calc.php'],
    ['link'=>'Демо', 'href'=>'demo',
        ['link'=>'Тест','href'=>'test.php'],
        ['link'=>'Индекс','href'=>'index.php'],
        ['link'=>'Цикл For','href'=>'for.php'],
        ['link'=>'Цикл While','href'=>'while.php'],
    ]];

foreach ($leftMenu as $key => $val) {
    foreach ($val as $v1) {
        echo $v1 . "<br>";
        if(count($val) > 2) {
            foreach ($v1 as $v2 => $v3) {
                echo $v3 . "<br>";
            }
        }
    }
}


Результат:
Домой
index.php
О нас
about.php
Контакты
contact.php
Таблица умножения
table.php
Калькулятор
calc.php
Демо

Warning: Invalid argument supplied for foreach() in /Users/***/sites/test/www/demo/test.php on line 27
demo

Warning: Invalid argument supplied for foreach() in /Users/***/sites/test/www/demo/test.php on line 27

Notice: Array to string conversion in /Users/***/sites/test/www/demo/test.php on line 25
Array
Тест
test.php

Notice: Array to string conversion in /Users/***/sites/test/www/demo/test.php on line 25
Array
Индекс
index.php

Notice: Array to string conversion in /Users/***/sites/test/www/demo/test.php on line 25
Array
Цикл For
for.php

Notice: Array to string conversion in /Users/***/sites/test/www/demo/test.php on line 25
Array
Цикл While
while.php
  • Вопрос задан
  • 3252 просмотра
Пригласить эксперта
Ответы на вопрос 2
@vista1x
<?php
    $leftMenu = [
        ["link"=>'Домой', 'href'=>'index.php'],
        ['link'=>'О нас', 'href'=>'about.php'],
        ['link'=>'Контакты', 'href'=>'contact.php'],
        ['link'=>'Таблица умножения', 'href'=>'table.php'],
        ['link'=>'Калькулятор', 'href'=>'calc.php'],
        ['link'=>'Демо', 'href'=>'demo',
        ['link'=>'Тест','href'=>'test.php'],
            ['link'=>'Индекс','href'=>'index.php'],
            ['link'=>'Цикл For','href'=>'for.php'],
            ['link'=>'Цикл While','href'=>'while.php'],
        ]
    ];

    function arprint($arr) {
        foreach($arr as $a) {
            if (is_array($a)) {
                print '<br>';
                arprint($a);
            } else {
                print $a . '<br>';
            }
        }
    }

    arprint($leftMenu);
?>
Ответ написан
Комментировать
@Atllantis
foreach ($leftMenu as $key => $val) {
    foreach ($val as $v1) {
        echo $v1 . "<br>";
        if(is_array($v1)) {
            foreach ($v1 as $v2 => $v3) {
                echo $v3 . "<br>";
            }
        }
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы