За последние 24 часа нас посетили 16519 программистов и 1569 роботов. Сейчас ищут 927 программистов ...

Помощь в чтении многомерного массива

Тема в разделе "PHP для новичков", создана пользователем zerosoul, 31 июл 2012.

  1. zerosoul

    zerosoul Активный пользователь

    С нами с:
    15 май 2012
    Сообщения:
    12
    Симпатии:
    0
    Правильно же я понимаю я foreach зачитываю массив в переменную $m? у которой есть свои ячейки $m[0] = Ремонт компьютеров, $m[1] = remont.php, а на деле все не то!
    прошу помощи разобраться в чем не прав

    Код (Text):
    1. $menu = array(
    2.                 'Ремонт компьютеров', 'remont.php', array(array('Жесткие диски', 'hard.php'),
    3.         array('Видеокарты', 'video.php'),
    4.             array('Блоки питания', 'blok.php')));
    5.                
    6.                        
    7.  
    8.        
    9.         foreach($menu as $m){
    10.        
    11.        
    12.         echo "<li><a href=\"$m[1]\">", $m[0], '</a></li>';}
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    В твоём коде переменная $m будет принимать значения:
    'Ремонт компьютеров',
    'remont.php',
    array(array('Жесткие диски', 'hard.php'),array('Видеокарты', 'video.php'),array('Блоки питания', 'blok.php'))

    Так что $m[1] будет выводить второй символ из строк, а из массивов второй элемент.
     
  3. zerosoul

    zerosoul Активный пользователь

    С нами с:
    15 май 2012
    Сообщения:
    12
    Симпатии:
    0
    А подскажите как сделать так, чтобы <li><a href=\"СЮДА ПРИХОДИЛО "remont.php\">", А СЮДА ПРИХОДИЛО "Ремонт компьютеров", '</a></li>'
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Если массив в $menu верно описан, то
    Код (PHP):
    1. <?php
    2. $menu = array(
    3.     'Ремонт компьютеров',
    4.     'remont.php',
    5.     array(array('Жесткие диски', 'hard.php'),array('Видеокарты', 'video.php'),array('Блоки питания', 'blok.php'))
    6. );
    7.  
    8. echo '<li>[url="'.$menu[1].'"]', $menu[0], '[/url]</li>'; 
     
  5. zerosoul

    zerosoul Активный пользователь

    С нами с:
    15 май 2012
    Сообщения:
    12
    Симпатии:
    0
    Спасибо!
    а если массив будет так выглядеть
    Код (PHP):
    1. $menu = array(array(
    2.     'Ремонт компьютеров',
    3.     'remont.php',
    4.     array(array('Жесткие диски', 'hard.php'),array('Видеокарты', 'video.php'),array('Блоки питания', 'blok.php')));
    5.     'Установка Windows',
    6.     'ystanowka.php',
    7.     array(array('Win7', 'Win7.php'),array('WinXP', 'WinXP.php'),array('WinVista', 'WinVista.php'))); 
     
  6. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    если так, то просто ошибку выдаст ещё во время парсинга, скорей всего синтакс эррор, т.к. неправильно описан массив. Видимо, вот это требуется
    Код (PHP):
    1. <?php
    2. $menu = array(
    3.     array(
    4.         'Ремонт компьютеров',
    5.         'remont.php',
    6.         array(array('Жесткие диски', 'hard.php'),array('Видеокарты', 'video.php'),array('Блоки питания', 'blok.php'))
    7.     ),
    8.     array(
    9.         'Установка Windows',
    10.         'ystanowka.php',
    11.         array(array('Win7', 'Win7.php'),array('WinXP', 'WinXP.php'),array('WinVista', 'WinVista.php'))
    12.     ),
    13. );
    14.  
    15. echo '<ul>',"\n";
    16. foreach($menu as $m){
    17.     echo '<li>[url="'.$m[1].'"]', $m[0], '[/url]</li>',"\n";
    18. }
    19. echo '</ul>',"\n";