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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Дерево, массив, вывод списком

Сообщения:  [1-10] 

 
 автор: boom.olezka   (28.09.2007 в 17:06)   письмо автору
 
   для: boom.olezka   (28.09.2007 в 16:32)
 

Всё невозможное возможно :)

Вот такой вариант работает верно :)


echo "<ul>";
$i  =  0;
$old_level = 0;
foreach ($out AS $index => $val)
  {

     if ($old_level != $out[$i][2])
     {
         if ($old_level < $out[$i][2]) echo "<ul>";
         if ($old_level > $out[$i][2])
         {
             $count_ul = $old_level - $out[$i][2];
             $j = 1;
             While ($j <= $count_ul)
             {
                    echo "</ul>";
                    $j++;
             }
         }
     }
     echo "<li><a href=\"?id=".$out[$i][0]."\">".$out[$i][1]."</a></li>";


     if ($old_level != $out[$i][2])
     {

     }
     $old_level = $out[$i][2];
     $i++;
  }
echo "</ul>";

   
 
 автор: boom.olezka   (28.09.2007 в 16:32)   письмо автору
 
   для: boom.olezka   (28.09.2007 в 01:49)
 

Спасибо, я попробую... Вопрос стоял именно во моим данным, я понимаю что можно подругому :) Но подругому, уже в другом топике :)

   
 
 автор: SHAman   (28.09.2007 в 16:16)   письмо автору
 
   для: boom.olezka   (28.09.2007 в 16:04)
 

По-моему, нет. И вот почему.

Допустим, вы делаете дерево:

Главная
Не главная
Кухня
____плюшки
____ватрушки
Пивная
____пивасик
____выпивасик
Мыло

В этом случае, у вас у плюшек с ватрушками и пивасика с выпивасиком будет одинаковый level, а расположены они под разными родителями. Нужно указывать не уровень, а именно родителя. А потом рекурсивно выводить.

   
 
 автор: boom.olezka   (28.09.2007 в 16:04)   письмо автору
 
   для: sim5   (28.09.2007 в 15:23)
 

Конечно к моим :) Меня интересует вопрос, вообще это возможно? :) с такой структурой массива как у меня?

   
 
 автор: sim5   (28.09.2007 в 15:23)   письмо автору
 
   для: boom.olezka   (28.09.2007 в 15:17)
 

Кода чего, к вашим данным или что я привел? Ищите в этом разделе, вроде недавно такое обсуждалось, вот и будет вам пример.

   
 
 автор: boom.olezka   (28.09.2007 в 15:17)   письмо автору
 
   для: sim5   (28.09.2007 в 14:47)
 

А можно пример, кода... у меня у самого не получилось... Всё не так...

   
 
 автор: sim5   (28.09.2007 в 14:47)   письмо автору
 
   для: boom.olezka   (28.09.2007 в 14:29)
 

А где у вас уровни?

$out[][0] = id_menu; 
$out[][1] = name_menu; 
$out[][2] = level_menu;

Обычно так:

parent id
0       1 //корень самый верхний уровень, нет родителя
1       2 //родитель уровеня id1 - первое вложение для id1
2       3 //родитель уровеня id2 - второе вложение для id1
//и т.д.  

Если ваш level_menu содержит цифру указывающую на смещение уровня (вложение), ну проверяйте ее в предложенном цикле и обрмляйте в ul.

   
 
 автор: boom.olezka   (28.09.2007 в 14:29)   письмо автору
 
   для: zeeg   (28.09.2007 в 07:02)
 

а где в этом коде создаются уровни? Здесь получаюется из всего меню один уровень...

   
 
 автор: zeeg   (28.09.2007 в 07:02)   письмо автору
 
   для: boom.olezka   (28.09.2007 в 01:49)
 


<?php
echo "<ul>";
$i  =  0;
foreach (
$out AS $index => $val)
  {
     echo 
"<li><a href=\"link\">$out[$i][1]</a></li>"
     
$i++;
  }  
echo 
"</ul>";
?>

   
 
 автор: boom.olezka   (28.09.2007 в 01:49)   письмо автору
 
 

Есть дерево в массиве

$out[][0] = id_menu;
$out[][1] = name_menu;
$out[][2] = level_menu;


Обхожу его так


$i  =  0;
foreach ($out AS $index => $val)
{
echo $out[$i][1]."<br>"; 
$i++;
}


Вопрос!!! Помогите мне вывести его в HTML испоьзую теги формирования списка... Моё дерево не ограничено по вложениям :)


                    <ul>
                        <li><a href="link">Вебмастеру</a></li>
                        <li><a href="link">О сайте</a></li>
                        <li><a href="link">Скрипты</a></li>
                        <li><a href="link">Новости латвии</a></li>
                        <li><a href="link">Хостинг</a></li>
                        <li><a href="link">Веб студии</a></li>
                        <li><a href="link">О сайте</a></li>
                        <li><a href="link">Скрипты</a></li>
                        <li><a href="link">Новости латвии</a></li>
                        <li><a href="link">Хостинг</a></li>
                        <li><a href="link">Веб студии</a></li>
                        <li><a href="link">О сайте</a></li>
                             <ul>
                                <li><a href="link">Скрипты</a></li>
                                    <ul>
                                        <li><a href="link">Dreamweaver скачать</a></li>
                                            <ul>
                                                <li><a href="link"><strong>PHP-Nuke</strong></a></li>
                                            </ul>

                                    </ul>
                            </ul>
                        <li><a href="link">Скрипты</a></li>
                        <li><a href="link">Новости латвии</a></li>
                        <li><a href="link">Хостинг</a></li>
                        <li><a href="link">Веб студии</a></li>
                    </ul>

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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