Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 288

Не могу разобраться с массивом

20.08.2019, 12:00. Показов 512. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток.
Ребята, помогите пожалуйста разобраться с массивом.
Имеется вот такой "хаотичный" массив:
Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Array
(
    [0] => Array
        (
            [ID] => 85
            [parent_id] =>
            [Name] => Первый уровень
        )
)
Array
(
    [0] => Array
        (
            [ID] => 87
            [parent_id] => 85
            [Name] => Второй уровень
        )
 
    [1] => Array
        (
            [ID] => 101
            [parent_id] => 85
            [Name] => Второй уровень
        )
)
Array
(
    [0] => Array
        (
            [ID] => 90
            [parent_id] => 87
            [Name] => Третий уровень
        )
 
    [1] => Array
        (
            [ID] => 185
            [parent_id] => 101
            [Name] => Третий уровень
        )
)
Array
(
    [0] => Array
        (
            [ID] => 16137
            [parent_id] => 87
            [Name] => Второй уровень
        )
 
    [1] => Array
        (
            [ID] => 16136
            [parent_id] => 87
            [Name] => Второй уровень
        )
 
)

Нужно перебрать массив таким образом, чтоб на выходе получить:
XML
1
2
3
4
5
6
7
8
<Каталог>
    <Первый_уровень>
        <Второй_уровень>
            <Третий_уровень>
            </Третий_уровнь>
        </Второй_уровень>
    </Первый_уровень>
<Каталог>
Третий день уже ломаю голову и курю гугл, ничего путного не выходит. Было бы кончено простым вариантом сделать foreach и условие, мол если ID равно parent_id то как то впихиваем вложенность, но опять же в этом случае parent_id никогда не будет равно ID, плюс уровни вложенности разбросаны по массиву в хаотичном порядке...
В общем, буду благодарен за любые подсказки!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.08.2019, 12:00
Ответы с готовыми решениями:

Не могу разобраться с динамическим массивом
Объявляю массив так: int **mas; mas = new int*; for (int i = 0; i&lt;A; i++) { mas = new int; } в итоге выходит...

Не могу разобраться с нерегулярным массивом
Добрый вечер, помогите пожалуйста с задачей. 1. Нужно создать нерегулярный массив, подобный table: int table = new int ; ...

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

6
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
20.08.2019, 12:40
Цитата Сообщение от pacanchik2013 Посмотреть сообщение
Имеется вот такой "хаотичный" массив:
Структура не хаотична. В каждом подмассиве есть идентификатор уровня(ключ Name): Первый уровень, Второй уровень и тд.
На основании этих данных выводите, как надо.
0
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 288
20.08.2019, 12:48  [ТС]
Пифагор, в Name может быть любое (не повторяющиеся) название, это я просто пример привёл, единственное что есть в этом массиве, это parent_id, который в дальнейшем говорит о том, к какому ID он привязан. Вот исходя из этого и нужно собрать упорядоченную иерархию, но увы, идей пока как кот наплакал.
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
20.08.2019, 13:05
Цитата Сообщение от pacanchik2013 Посмотреть сообщение
в Name может быть любое (не повторяющиеся) название, это я просто пример привёл
Тады ой...
Цитата Сообщение от pacanchik2013 Посмотреть сообщение
единственное что есть в этом массиве, это parent_id
parent_id тоже ни о чем не говорит. Значения абсолютно никак не привязаны к массивам. Или я чего-то не вижу...
0
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 288
20.08.2019, 13:48  [ТС]
Цитата Сообщение от Пифагор Посмотреть сообщение
parent_id тоже ни о чем не говорит. Значения абсолютно никак не привязаны к массивам. Или я чего-то не вижу...
Ну если дальше идти по массиву, то можно увидеть что parrent_id имеет такое же значение что и ID у предыдущих.
Иными словами это каталог, который хотелось бы привести в упорядоченный вид, соблюдая его вложенность, о которой опять таки будут нам говорить ID и parent_id.

Добавлено через 24 минуты
У меня может быть на выходе и такое (см. вложение, не прикрепляется ссылка с prntscr ресурса), торговые площадки же парсят эту инфу и создается каталог со всей вложенностью. В общем в голове сплошная каша, не складываются у меня мысли уже...
Миниатюры
Не могу разобраться с массивом  
0
27 / 26 / 9
Регистрация: 08.04.2015
Сообщений: 288
20.08.2019, 16:24  [ТС]
Я так понимаю, тут только цикл в цикле поможет? Ну то есть во вложенном цикле будем искать значение parent_id в ID?
Или быть может, у кого-нибудь есть ещё какие-то идеи?
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
20.08.2019, 16:29
pacanchik2013, если есть категории, то подкатегории должны быть ЯВНО СВЯЗАНЫ с категориями, и никак иначе. Если "иначе", то либо Вас "парят", либо просто не предоставили всех сведений.

Добавлено через 1 минуту
А если люди не могут нормальную структуру данных создать, то может и не стоит с ним работать???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.08.2019, 16:29
Помогаю со студенческими работами здесь

С div-ом и массивом для него не могу разобраться
создать приложение с таблицей 10*10, которое в момент запуска заполняет ее случайными числами от -100 до 500 при нажатии кнопки поиск, в...

Не могу разобраться как сделать указатель функции с динамич. массивом
int* mass(int p, int n) { cout &lt;&lt; &quot;Введите размер массива: &quot;; cin&gt;&gt;n; int *p = new int ; for (int i(0); i &lt; n; i ++) { cout...

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент массива и сумму элементов массива,...

Помогите разобраться с массивом
всем привет...помогите разобраться с массивом, соданного функцией scandir() скрапт должен сортировать названия файлов следующим образом ...

Помогите разобраться с массивом
Есть файл с классом function get_user($id) { $query = mysql_query(&quot;select * from user where id='$id'&quot;); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru