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

Форум PHP

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

 

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

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

тема: Из массива в маркированный список
 
 автор: technic611   (12.03.2013 в 14:00)   письмо автору
 
 

из файла data.csv
6;Вакансии;060000000000000000;1
7;Контакты;070000000000000000;1
....

15; Что-то; 070100000000000000; 2


<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
 <title></title>
</head>

<?php
$array
=array();

$fn "data.csv" // Выбираем файл

$f fopen($fn"rt") or die("Ошибка!");
for (
$i=0$data=fgetcsv($f,8000,";"); $i++) {

 

  for (
$c=0$c<count($data); $c++)
  {
  if(
$c==2){
$result str_split($data[$c], 2);

for (
$k=0$k<count($result); $k++)
  {
  
$kk=(int)$result[$k];
  if(
$kk==0)

$un=(int)$result[$k-2];
$un2=(int)$result[$k-1];
 if( 
$un==0$key=$un2;
 else 
$key=$i;
  
$array[$key]["parent"]=$un// здесь нужно сделать рекурсию для проверки остальных вложенных 
  
$array[$key]["pos"]=$un2;
  
$array[$key]["name"]=$data[1];
  
  

 break;
 }
}
}
}
}

// Построение дерева за один проход
foreach($array as $menu_id=>$data) {
    
// Прописать в родительском узле ссылку на пункт меню
    
$array[$data['parent']]['child'][$menu_id]=&$array[$menu_id];
}
 
// Готовый массив находится в $menu[0]['child']
$sorted_menu=(array)$array[0]['child'];



как здесь сделать рекурсию?

echo 
'<ul>';
foreach(
$sorted_menu as $top_menu) {
    
// Меню верхнего уровня
    
echo '<li>'.$top_menu['name'];
    
    unset(
$chislo);
    
    if (
count($top_menu['child'])) {
    
$chislo=array();
    
    
        
// Субменю второго уровня
        
echo '<ul>';
        
        foreach(
$top_menu['child'] as $sub_menu) {

$chislo[$sub_menu['pos']]=$sub_menu['name'];

// Сортируем

         
ksort($chislo);
        }    
        

        
        
// Выводим отсортированный список
        
foreach($chislo as $sub_menu) {
        
         echo 
'<li>'.$sub_menu;
            
            echo 
'</li>';
    
    
    
        }
        
        echo 
'</ul>';
    }
    echo 
'</li>';
}
echo 
'</ul>';

 


 
?>
</html>



Друзья, помогите пожалуйста, я вывожу список состоящих только из одного вложения, а мне нужна рекурсивная функция, которая будет проверять остальные вложения.

  Ответить  
Rambler's Top100
вверх

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