Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2011, 23:57   #1
GoogleDOt
 
Регистрация: 12.09.2011
Сообщений: 3
По умолчанию Многомерные массивы!

Доброе время суток!
У меня возникла задача создать некий элемент, он представляет собой многомерный массив:

Дан массив 100 на 100 ячеек, с этим то мне все ясно... Но вот мне нужно выделение курсором ячеек и их объединение вот тут то и застопорилась моя работа. Вообще мне не понятно что делать с индексами ячеек которые объединяются, вообщем на этой картинке нужно объединить элементы А[2.2] и А[2.3] что бы эти два элемента стали одним, какой индекс примет этот элемент (я предполагаю что примет индекс первого элемента A[2.2]) , но куда денется второй индекс не понятно.
ссылка на картинку


Просьба помочь если не сложно.
Заранее спасибо!
GoogleDOt вне форума Ответить с цитированием
Старый 13.09.2011, 05:04   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Если действовать по логике HTML-таблицы, то осталось придумать где хранить аналоги rowspan и colspan. Как вариант - в следующих ячейках, которые подпадают под объединение, несложная рекурсия решит проблему с выводом.
Можно завести отдельную таблицу, хранящую информацию об объединении таблицы.
На первый взгляд, оба варианта подходят даже для неправильных форм ячеек (т.е. не прямоугольных), тут больше будет проблем при выводе с отрисовкой границ)
Alar, верни репу!

Последний раз редактировалось Naive; 13.09.2011 в 05:09.
Naive вне форума Ответить с цитированием
Старый 14.09.2011, 01:15   #3
GoogleDOt
 
Регистрация: 12.09.2011
Сообщений: 3
По умолчанию

Как бы если делать то мне надо на php или asp.net (со вторым будет мне посложнее)
Цитата:
Если действовать по логике HTML-таблицы, то осталось придумать где хранить аналоги rowspan и colspan. Как вариант - в следующих ячейках, которые подпадают под объединение, несложная рекурсия решит проблему с выводом.
А по подробнее можно?
Цитата:
На первый взгляд, оба варианта подходят даже для неправильных форм ячеек (т.е. не прямоугольных), тут больше будет проблем при выводе с отрисовкой границ)
Как бы тут тоже возникнет проблема, так как границы мне нужны будут...
GoogleDOt вне форума Ответить с цитированием
Старый 14.09.2011, 08:05   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

еще вариант - хранить в массиве не просто ячейку - а объекты,
например со свойствами ячейки
a['value'] - содержимое ячейки
a['merge'] - информация об объединении с другими ячейкам

а в качестве информации об объединении предлагаю хранить например индекс объединяемой области.... к примеру - если везде 0 - то таблица без объяединений, если в некоторых ячейках стоит 1 - именно эти ячейки и объеденены (причем в таком случае можно доже объединять несоприкасающиеся области) 2 - другая область итд. чтобы присоеденить ячейку к той или иной области - достаточно в значение merge - подставить необходимый индекс области нужной
ADSoft вне форума Ответить с цитированием
Старый 14.09.2011, 14:54   #5
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от GoogleDOt Посмотреть сообщение
Как бы если делать то мне надо на php или asp.net (со вторым будет мне посложнее)
Я и говорил про PHP, однако любые данные в оном нужно выводить каким-либо образом, как правило - это html-таблица
Цитата:
Сообщение от GoogleDOt Посмотреть сообщение
А по подробнее можно?
При отрисовке какой-либо ячейки смотрим содержимое правой и нижней ячейки, в зависимости от этого, ставим в ячейку rowspan или(и) colspan. Запоминаем номера пропускаемых ячеек.
Если нужна неправильная форма, также просматриваем соседей и в зависимости от этого рисуем границы дивов.
п.с. Насчет хранения объектов с формой, более привлекательная идейка) Тут можно обойтись без двумерного массива, а хранить одномерный массив с формой, содержимым и координатами.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 14.09.2011, 17:24   #6
GoogleDOt
 
Регистрация: 12.09.2011
Сообщений: 3
По умолчанию

Цитата:
еще вариант - хранить в массиве не просто ячейку - а объекты,
например со свойствами ячейки
a['value'] - содержимое ячейки
a['merge'] - информация об объединении с другими ячейкам
Это мне и надо, попробую сегодня таким способом...

Цитата:
...а хранить одномерный массив с формой, содержимым и координатами.
Одномерный массив возможно, но как бы я просто привел пример в форме 4х4, а у меня задача 100х100 то есть мне для каждой строки делать отдельный одномерный массив?

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

Последний раз редактировалось GoogleDOt; 14.09.2011 в 17:27. Причина: Дополнение
GoogleDOt вне форума Ответить с цитированием
Старый 15.09.2011, 09:33   #7
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Одномерный массив объектов на всю "матрицу" NxN.

п.с.Я давно уже не сижу в скайпе, да и пароль забыл)
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многомерные массивы Zina123 Помощь студентам 1 12.12.2010 21:51
одномерные и многомерные массивы. С# junita Фриланс 2 04.12.2010 22:29
многомерные массивы в Delphi Elfanta Помощь студентам 8 10.06.2010 07:49
Многомерные массивы в delphi 7 Миша Л. Помощь студентам 11 07.06.2010 22:06
Многомерные массивы DDP Помощь студентам 1 19.12.2009 19:37