Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Массив
 
 автор: shmel   (22.06.2006 в 17:17)   письмо автору
 
 

Здравствуйте.

<?
if(!$_GET['name'])
 {
  
$module 'pages';
 }
else
 {
   
$module $_GET['name'];
 }
 
class 
menu
 
{
  

    
// ------------------------------------------
   
function show_menu ()
    {
     global 
$name$module$podm;
     
$menu = array(
            
"d1"    =>    "Сайт",
            
"Страницы и структура" => "?name=pages",
            
"b1"    =>    "",
            
            
"d2"   =>  "Материалы",
            
"Новости" => "?name=news",
            
"Статьи" => "?name=article",
            
"b2"    =>    ""
            
);
     
$sub_menu = array(
            
"pages" => array(
                
"Список страниц""?name=pages&action=12""page.gif",
                
"Добавить страницу""?name=pages&action=add_p""page.gif",
            ),
            
"news" => array(
                
"Категории новостей""?name=news""page.gif",
                
"Добавить новости""?name=news&action=add_n""page.gif"
            
),
            
"article" => array(
                
"Список статей""?name=article&action=showlist""page.gif",
                
"Добавить статью""?name=article&action=add""page.gif"
            
));
     
     foreach (
$menu as $main_menu_item => $main_menu_item_link) {
            if (
preg_match("/^d[0-9]/",$main_menu_item)) {
                echo 
'<b>'.$main_menu_item_link.'</b><br>';
                continue;
                
            } else if (
preg_match("/^b[0-9]/",$main_menu_item)) {
                echo 
'<br><br>';
                continue;
                
            } else {
                echo 
"<a href='http://".$_SERVER['HTTP_HOST']."/config.php".$main_menu_item_link."'"
                echo 
">".$main_menu_item."</a><br>";
            }
            }
            
               if (
$module && is_array($sub_menu[$module]) && count($sub_menu[$module])>0) {
               
$i 0;
               foreach (
$sub_menu[$module] as $value) {
               
$i++;
               if (
$i == 1$menu_item $value;
               if (
$i == 2$menu_item_link $value;
               if (
$i == 3) { 
                 
$menu_item_icon $value;
                 
$podm = array(menu_item_icon => $menu_item_icon,);
                 echo 
count($podm);
                 
$i 0;
              }
          }
       }
      }    
   
   
// ------------------------------------------
 
}
?>

Поидее в масиве( $podm = array(menu_item_icon => $menu_item_icon,); ) должно быть неменее 2х записей, т.к если вставить ( echo $menu_item_icon ), выводится 2 записи, но в масив добавляется только 1, а почему понять не могу.

   
 
 автор: Trianon   (22.06.2006 в 17:45)   письмо автору
 
   для: shmel   (22.06.2006 в 17:17)
 

конструкция $podm = array($menu_item_icon) формирует новый массив из одного элемента, затирая старый.
чтобы добавить элемент, надо писать $podm[] = $menu_item_icon :


               $i = 0; 
               $podm  =  array();
               foreach ($sub_menu[$module] as $value) { 
               $i++; 
               if ($i == 1) $menu_item = $value; 
               if ($i == 2) $menu_item_link = $value; 
               if ($i == 3) { 
                 $menu_item_icon = $value; 
                 $podm[] = $menu_item_icon; 
                 echo count($podm); 
                 $i = 0; 
              } 

   
 
 автор: shmel   (22.06.2006 в 19:05)   письмо автору
 
   для: Trianon   (22.06.2006 в 17:45)
 

Извеняюсь самое главное забыл, не в том виде скрипт выложил.

<?
// ------------------------------------------ 
   
function show_menu () 
    { 
     global 
$name$module$podm
     
$menu = array( 
            
"d1"    =>    "Сайт"
            
"Страницы и структура" => "?name=pages"
            
"b1"    =>    ""
             
            
"d2"   =>  "Материалы"
            
"Новости" => "?name=news"
            
"Статьи" => "?name=article"
            
"b2"    =>    "" 
            
); 
     
$sub_menu = array( 
            
"pages" => array( 
                
"Список страниц""?name=pages&action=12""page.gif"
                
"Добавить страницу""?name=pages&action=add_p""page.gif"
            ), 
            
"news" => array( 
                
"Категории новостей""?name=news""page.gif"
                
"Добавить новости""?name=news&action=add_n""page.gif" 
            
), 
            
"article" => array( 
                
"Список статей""?name=article&action=showlist""page.gif"
                
"Добавить статью""?name=article&action=add""page.gif" 
            
)); 
     
     foreach (
$menu as $main_menu_item => $main_menu_item_link) { 
            if (
preg_match("/^d[0-9]/",$main_menu_item)) { 
                echo 
'<b>'.$main_menu_item_link.'</b><br>'
                continue; 
                 
            } else if (
preg_match("/^b[0-9]/",$main_menu_item)) { 
                echo 
'<br><br>'
                continue; 
                 
            } else { 
                echo 
"<a href='http://".$_SERVER['HTTP_HOST']."/config.php".$main_menu_item_link."'"
                echo 
">".$main_menu_item."</a><br>"
            } 
       
//     }    Не в том месте *
             
               
if ($module && is_array($sub_menu[$module]) && count($sub_menu[$module])>0) { 
               
$i 0
               foreach (
$sub_menu[$module] as $value) { 
               
$i++; 
               if (
$i == 1$menu_item $value
               if (
$i == 2$menu_item_link $value
               if (
$i == 3) { 
                 
$menu_item_icon $value
                 
$podm = array(menu_item_icon => $menu_item_icon,
                                             
menu_item => $menu_item,
                                             
menu_item_link =>$menu_item_link, ); 
                 echo 
count($podm); 
                 
$i 0
              } 
          } 
        }
       } 
// *
      
}     
    
   
// ------------------------------------------
?>

С созданием рахных массивов понятно, но это( $podm = array(menu_item_icon => $menu_item_icon,
menu_item => $menu_item,
menu_item_link =>$menu_item_link, ); ) должно остаться взаимосвязаным, т.к потом это будет выводиться совершенно в другом месте.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования