Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помощь с массивами

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
zerosoul
Отправлено: 31 Июля, 2012 - 16:48:27
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Есть такой вот многомерный массив хочу каждые его элемент зачитать в нужное место, а на выходе получаются что нечего не получается!
PHP:
скопировать код в буфер обмена
  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>';}

(Отредактировано автором: 31 Июля, 2012 - 16:49:37)

 
 Top
KingStar
Отправлено: 31 Июля, 2012 - 16:55:03
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




PHP:
скопировать код в буфер обмена
  1.         $menu = array
  2.         (
  3.         'Ремонт компьютеров',
  4.                 'remont.php',
  5.                 array(array('Жесткие диски', 'hard.php'),
  6.         array('Видеокарты', 'video.php'),
  7.         array('Блоки питания', 'blok.php'))
  8.         );
  9.  
  10.         echo $menu['0']; /* Ремонт компьютеров */
  11.         echo $menu['1']; /* remont.php */
  12.        
  13.         echo $menu['2']['0']['0']; /* Жесткие диски */
  14.         echo $menu['2']['0']['1']; /* hard.php */
  15.        
  16.         echo $menu['3']['0']; /* Видеокарты */
  17.         echo $menu['3']['1']; /* video.php */
  18.        
  19.         echo $menu['4']['0']; /* Блоки питания */
  20.         echo $menu['4']['1']; /* blok.php */
  21.  


-----
То что программа работает, не означает что она написана правильно!
 
 Top
zerosoul
Отправлено: 31 Июля, 2012 - 17:05:26
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Немного не корректно задал вопрос:

у меня есть ввод этого массива с поставлением в нужное место конкретного элемента,

И Все таки хотелось бы использовать для этих целей "foreach", но сейчас в место, как я думаю, нужных мне элемонтов, подставляеться совсем, не то что мне нужно

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



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




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


все верно, но у тебя многомерный массив, и foreach тебе врядле помочник, если знаешь ключ => значение, выводи без цикла, иначе в цикле нужно изобретать велосипед с кучей проверок


-----
То что программа работает, не означает что она написана правильно!
 
 Top
zerosoul
Отправлено: 31 Июля, 2012 - 17:39:47
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




По вашим словам это тогда и массив ненужен, и странички можно в хмтл просто сделать Улыбка)
отступление.

А вообще какие проверки на существование array и что этот параметр массив.

А без проверок хоть примерно расскажите как это должно быть.

Пытаюсь просто сделать боковое меню с подкатегориями
 
 Top
Hawkmoth
Отправлено: 31 Июля, 2012 - 19:21:42
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




Проверку на то, является ли переменная масивом, осуществляет функция is_array().
Мне кажется, Вам следует слегка изменить структуру Вашего массива. В Вашем случае, если очень хочется использовать foreach, при условии, что структура меню именно такая, как Вы и указали, код будет выглядеть примерно так:
PHP:
скопировать код в буфер обмена
  1. echo '<li><a href="'.$menu[1].'">'.$menu[0].'</a></li>';
  2. foreach ($menu as $k=>$m) {
  3.   if ($k<2) continue;
  4.   foreach ($m as $value) {
  5.      echo '<li><a href="'.$value[1].'">'.$value[0].'</a></li>';
  6.   }
  7. }
 
 Top
KingStar
Отправлено: 31 Июля, 2012 - 20:24:47
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




что-то тип того

PHP:
скопировать код в буфер обмена
  1. foreach ($menu as $value)
  2. {
  3.         if(is_array($value))
  4.         {
  5.                 foreach ($value as $value2)
  6.                 {
  7.                         if(is_array($value2))
  8.                         {
  9.                                 foreach ($value2 as $value3)
  10.                                 {
  11.                                         echo '<li> - - <a href="'.$value3['1'].'">'.$value3['0'].'</a></li>';
  12.                                 }
  13.                         }
  14.                         else
  15.                         {
  16.                                 echo '<li> - <a href="'.$value2['1'].'">'.$value2['0'].'</a></li>';
  17.                         }
  18.                 }
  19.         }
  20.         else
  21.         {
  22.                 echo '<li><a href="'.$value['1'].'">'.$value['0'].'</a></li>';
  23.         }
  24. }


и чем больше у тебя подкатегорий, тем больше проверок и вложенных циклов

(Отредактировано автором: 31 Июля, 2012 - 20:27:17)



-----
То что программа работает, не означает что она написана правильно!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB