Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объеденить 2 массива 
:(
    Опции темы
burg
Дата 25.8.2008, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



Есть 1-ый массив

Код

Array 
( 
    [0] => Array 
        ( 
            [ID] => 6 
            [ParentID] => 0 
        ) 

    [1] => Array 
        ( 
            [ID] => 260 
            [ParentID] => 0 
        ) 

    [2] => Array 
        ( 
            [ID] => 99 
            [ParentID] => 0 
        ) 

    [3] => Array 
        ( 
            [ID] => 100 
            [ParentID] => 0 
        ) 
)


и есть массив

Код

Array 
( 
    [0] => Array 
        ( 
            [ID] => 245 
            [ParentID] => 6 
        ) 

    [1] => Array 
        ( 
            [ID] => 83 
            [ParentID] => 6 
        ) 

    [2] => Array 
        ( 
            [ID] => 29 
            [ParentID] => 6 
        ) 
)


Возможно, ли объединить их в один массив, вставая массив с ParentID=6 после ID = 6 чтобы получился вот такой массив?

Код

Array 
( 
    [0] => Array 
        ( 
            [ID] => 6 
            [ParentID] => 0 
        ) 
    [1] => Array 
        ( 
            [ID] => 245 
            [ParentID] => 6 
        ) 

    [2] => Array 
        ( 
            [ID] => 83 
            [ParentID] => 6 
        ) 

    [3] => Array 
        ( 
            [ID] => 29 
            [ParentID] => 6 
        ) 

    [4] => Array 
        ( 
            [ID] => 260 
            [ParentID] => 0 
        ) 

    [5] => Array 
        ( 
            [ID] => 99 
            [ParentID] => 0 
        ) 

    [6] => Array 
        ( 
            [ID] => 100 
            [ParentID] => 0 
        ) 
)



Вообще реально ли это сделать?

Это сообщение отредактировал(а) burg - 25.8.2008, 20:35
PM MAIL   Вверх
bars80080
Дата 25.8.2008, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



что-то я не понял порядок сортировки, а также разницы между двумя массивами.

ещё у меня смутные подозрения, что это результаты sql-запросов
PM MAIL WWW   Вверх
burg
Дата 25.8.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



Второй массив вставляется в первый после ID = 6 т.к. ParentID = 6
PM MAIL   Вверх
Mal Hack
Дата 25.8.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



В данном случае только ручками. А вообще, лучше - реализовать работу через дерево. Массив в данном случае - не тру.
Скажите подробнее задачу, посмотрим что можно придумать.
PM ICQ   Вверх
burg
Дата 25.8.2008, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



Это и так по идее дерево.

Мне надо реализовать разворачивающееся дерево, чтобы не нагружать базу.
Соответственно данные надо дозагружать по ID.
Полученные данные будут отображаться в таблице и с помощью аякса у меня не получилось, добавлять новую строчку <tr><td>ID</td><td>PID</td></tr>

поэтому решил добавлять данные в массив и выводить его.

PM MAIL   Вверх
Mal Hack
Дата 25.8.2008, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(burg @  25.8.2008,  22:57 Найти цитируемый пост)
Это и так по идее дерево.

С точки зрения информационной модели - да, с точки зрения реализации - не совсем smile

PM ICQ   Вверх
burg
Дата 25.8.2008, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



по этому и по идее smile
Вопрос так как мне решить мою проблемму?
PM MAIL   Вверх
Mal Hack
Дата 25.8.2008, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Два варианта (в порядке оптимальности и правильности):
1. Перепроектировать скрипт, в частности структуру данных.
2. Копируем не нужную (которую надо сдвинуть) часть массива куда-ть в третий массив, вырезая из основного. Делаем array_merge первого и массива с дочерними элементами, делаем array_merge получившегося массива с третьим (сдвинутая часть).
PM ICQ   Вверх
burg
Дата 25.8.2008, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



Вопрос как скопировать ненужную часть?
PM MAIL   Вверх
Mal Hack
Дата 25.8.2008, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Тут придется, тупо for'ом, например, перекидывать эелементы в другой массив, т.е. что-то вроде
for(...) {arr3[]=array_pop($arr1);}
Потом, arr3 пересортировать. Ну или примостить тут совместо еще и http://ru2.php.net/manual/ru/function.array-unshift.php
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.