Список двухуровневой вложенности

Тема в разделе "Joomla", создана пользователем mila_serdnaya, 30 окт 2015.

  1. mila_serdnaya

    mila_serdnaya

    Регистрация:
    13 июл 2015
    Сообщения:
    19
    Симпатии:
    1
    У нас есть двумерный массив
    ---------------
    ([0] => stdClass Object ( [articleId] => 229 [articleTitle] => Кольцов [articleAlias] => koltsov [articleCategory] => 55 [id] => [asset_id] => [title] => [ordering] => [state] => [created_time] => [checked_out] => [checked_out_time] => [created_by] => [editor] => )


    [1] => stdClass Object ( [articleId] => 525 [articleTitle] => Черный [articleAlias] => chernyj [articleCategory] => 55 [id] => [asset_id] => [title] => [ordering] => [state] => [created_time] => [checked_out] => [checked_out_time] => [created_by] => [editor] => )


    [3] => stdClass Object ( [articleId] => 25 [articleTitle] => Анаграмма [articleAlias] => anagramma [articleCategory] => 55 [id] => [asset_id] => [title] => [ordering] => [state] => [created_time] => [checked_out] => [checked_out_time] => [created_by] => [editor] => )

    ----------------------

    Нам нужно из этого массива вывести на сайте список сборников с материалами:
    ---------------------------------------------
    Название сборника
    - материал
    - материал
    Название сборника
    - материал
    - материал

    Плюс отдельно материалы без сборников.
    ---------------------------------------------
    Знающие люди подсказали, что нам нужно пройтись по всем данным и собрать их в новый многомерный массив.
    Для нашего списка нужен массив массив такого вида:

    [id][title]
    - [id][articleId][articleTitle]

    Подскажите, пожалуйста, вот как теперь это правильно оформить?
     
  2. mila_serdnaya

    mila_serdnaya

    Регистрация:
    13 июл 2015
    Сообщения:
    19
    Симпатии:
    1
    Ох, и намучались мы с массивом.... Не будем загружать вас лишней иформацией.
    В общем, сейчас наш массив имеет такой вот вид (это окончательно):
    ------------------------------------------------------------------------------------------
    Array
    (
    • => stdClass Object
    (
    [id] => 8
    [title] => Материалы без сборника
    [created_by] => 919
    [articles] => Array
    (

    • => stdClass Object
    (
    [id] => 647
    [title] => Бездомный
    [alias] => bezdomnyj
    [catid] => 2
    [compilation_id] => 8
    )

    )

    )

    [1] => stdClass Object
    (
    [id] => 9
    [title] => Зебр
    [created_by] => 919
    [articles] => Array
    (

    • => stdClass Object
    (
    [id] => 646
    [title] => Полоски
    [alias] => poloski
    [catid] => 2
    [compilation_id] => 9
    )

    )

    )

    )
    -------------------------------------------------------------------
    Подскажите, пожалуйста, как нам теперь всё это красиво оформить во фронтенде? Мы хотим, чтобы у нас был красивый кликабельный список...
     
  3. mila_serdnaya

    mila_serdnaya

    Регистрация:
    13 июл 2015
    Сообщения:
    19
    Симпатии:
    1
    Люди добрыя! Помогииите! =)...Пытаемся мы присоединить материалы к списку сборников. И так, и эдак - не получается. Правим код в файле default.php прямо на сервере и сразу же смотрим изменения.
    ---------------------------------------------
    Перечитали море информации о том, что такое многомерные ассоциативные массивы, про выборку данных из массива с помощью функции foreach, про ключи, про раскрывающиеся списки... Захлебнулись от переизбытка. Направьте нас, пожалуйста, в нужную сторну!
    -------------------------------------------------------
    Что мы поняли?

    У нас есть многомерный массив, вроде как трёхуровневый.



    Для того, чтобы вывести значения этого массива, нужно, вроде как, воспользоваться функциями foreach, echo и ключами.


    <?php foreach ($this->items (это мы обратились к нашей переменной в модели) as $i => $item (а здесь назначаем ключ) ) : ?>.


    Нам, вообще непонятно, что такое $item? Мы знаем только, что такое $items...


    Подскажите, пожалуйста, как нам наш ключ определить, чтобы добраться до названий материалов, которые содержатся в сборнике?
    И, вообще, в нужном направлении мы копаем? Будем рады любой помощи, наводке и подсказке.
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    В таких случаях стоит почитать доки php :Smile:
    Как работает foreach? Он берёт из массива поочерёжно каждый ключ и соответствующее ему значение и заполняет ими переменные, которые ему для этого подставили. То есть так:
    PHP:
    foreach ($array as $key => $value
    В вашем случае ключ попадает не в $key, а в $i, а значение попадает не в $value, а в $item.

    Если ключи не нужны, можно использовать упрощённую версию цикла:
    PHP:
    foreach ($array as $value