Показать сообщение отдельно
  #1 (permalink)  
Старый 06.12.2013, 15:32
Новичок на форуме
Отправить личное сообщение для IntegralAL Посмотреть профиль Найти все сообщения от IntegralAL
 
Регистрация: 06.12.2013
Сообщений: 8

Создание списка из полей и ключей многомерного массива
Добрый вечер! Решаю проблему формирования списка-дерева.

Имеется к примеру такой массив:

$mas = array ( "City"  => array ( "a" => "New-York",
                                   "b" => "London",
                                   "c" => "Moscow"
                                 ),
              "Numbers"   => array ( "element-1",
                                   "element-2",
                                   "element-3",
                                   "element-4",
                                   "element-5",
                                   "element-6"
                                 ),
              "Other"   => array (      "one",
                                    5 => "two",
                                         "three",
                    7=> array ("mas10", "mas15")    
                                 )
            );


После преобразования в JSON-формат массив выглядит так:

Код:
{
"City":{"a":"New-York","b":"London","c":"Moscow"},
 "Numbers" ["element-1","element-2","element-3","element-4","element-5","element-6"],
 "Other":{"0":"one","5":"two","6":"three","7":["mas10","mas15"]}
}
Через JSON я передаю его в JS-код, в котором есть функция проставляющая теги списка:

Код:
function Dump(d,l) 
    {
      if (l == null) l = 1;
      var s = '';
      if (typeof(d) == "object") 
      {
        s += "<li><img src='../images/folder.gif' />";
        for (var k in d) 
        {

          s += "<ul>" + Dump(d[k],l+1)+"</ul>";

        }
        s += "</li>";
      } 
      else 
      {
        s += "<li><img src='../images/file.gif' />" + d + "</li>";
      }
      return s;
    }

str = Dump(data,1);
$("#span2").html(str);
И все это дело формируется в таком виде: http://www.imgup.ru/image-12jrx7161953.html

А хотелось бы сделать так чтобы заголовки элементов которые являются массивами в свою очередь (как например "City" или "7") показывали свои заголовки, а элементы которые просто хранят значения не показывали свои заголовки (такие как ключ "a", "5" или просто значения без указанного ключа как к примеру "element-3", "mas15" и т.д.). Как это сделать? Пробовал выводить значения k в цикле, но оно выводит аболютно все ключи, даже которые не являются массивами.
Ответить с цитированием