Сравнительная таблица

kombo

Новичок
Сравнительная таблица

Есть такой примерно массив. Хочу всунуть его в таблицу, в которой бы в случае совпадения значений $mainarr[$key][$subkey]=$val ячейки таблицы бы объединялись(при условии что они соседние конечно). Вроде бы просто на первый взгляд... ых :(

PHP:
$mainarr = Array
(
    [0] => Array
        (
            [ток] =>  6544
            [напряжение] =>  87687
            [частота] =>  78677
        )
    [1] => Array
        (
            [ток] =>  65456
            [напряжение] =>  87687
            [частота] =>  78677
        )
    [2] => Array
        (
            [ток] =>  65456
            [напряжение] =>  46466
            [частота] =>  78677
        )
.
.
.
.
)
 

Фанат

oncle terrible
Команда форума
пока у тебя даже не получилось задать вопрос.
попробуй ещё раз =)
 

Фанат

oncle terrible
Команда форума
с твоим у меня промашка вышла.
впрочем, если тебе не нужен ответ, то я закрою тему, и пойдём по домам
 

kombo

Новичок
Автор оригинала: Фанат
с твоим у меня промашка вышла.
впрочем, если тебе не нужен ответ, то я закрою тему, и пойдём по домам
Видишь ли, Фанат, наврядли человек который не выполнял схожей задачи будет сидеть и составлять алгоритм. Для того же кто с этим сталкивался формулировка достаточно ясна, чтобы понять о чем идет речь.
Можешь конечно закрыть тему, но я сюда пришел не с тобой отношения выяснять, поэтому либо закрой тему, либо постой в сторонке если по существу сказать нечего
 

Фанат

oncle terrible
Команда форума
ты зря считаешь свою задачу супер уникальной, требующей какого-то, ха-ха, алгоритма =)
Всё делается парой проверок, как я понимаю.

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

kombo

Новичок
да никакая она не уникальная, говорю же простая
даже не знаю как описать, неудобно как то говорить что объединять ячейки надо colspan-ом

пока дошел до этого
PHP:
$mac=count($mainarr);
$colsp=array(); 
foreach($mainarr[0] as $item=>$itemval) {
  echo "<tr><td>$item";
  foreach($mainarr as $key=>$valarr) {
    $j=1;
    while((($key+$j)<$mac)&&($mainarr[$key][$item]==$mainarr[($key+$j)][$item])) {$j++} 
    $colsp[$key]=$j;
  }
  print_r($colsp);
}
в $colsp уже кое что есть.
Или по другому ? как ?
 

Фанат

oncle terrible
Команда форума
описание проблемы состоит из трёх пунктов
1. Что хочешь получить
2. что сделал
3. что получилось в итоге

У тебя пока есть только второй.

Ты не воспринимай мои слова как занудство или издевательство.
Из твоих объяснений действительно сложно понять, что тебе нужно.
вот ты пишешь
в случае совпадения значений $mainarr[$key][$subkey]=$val
а что такое это $val? откуда взялось?
Что за таблица, в которой надо объединять ячейки?
Для тебя это само собой разумеется, но для того, кто читает - вообще ничего непонятно.
Так что ты себе очень льстишь, считая, что формулировка ясна для тех, кто сталкивался.

Ну я сталкивался.
Выводил хтмл в любых видах и формах.
И ни разу не приходил в затруднения.
всё, что нужно было - это хорошо представлять себе итоговую таблицу.
Вот попробуй это сделать.
Если не сделал для себя, то придётся потрудиться сделать это для тех, к кому ты пришёл за помощью
 

GemVit

Новичок
kombo

Действительно не особо понятно что именно ты хочешь получить в результате.
Вот пример массива - это хорошо.
Может можешь отобразить что должно получиться в результате?
Например:
|ток|напряжение|частота|
|...|...|...|
или может даже HTML тэгами.
В общем наглядный результат выполнения кода в студию :)
 

kombo

Новичок
таблица получиться должна такая
___________|_ 0 ____|_1___|_2____| - эту строку можно не выводить, она уже выведена:)
ток________|6544___|____65456___|
напряжение_|_87687______|46466__|
частота_____|______78667________|
 

Фанат

oncle terrible
Команда форума
прикольно.
предположить, что таблица окажется горизонтальоной, а не вертикальной, я думаю, тот не мог никто.

Скажи-ка, дружище.
А без этих спанов ты можешь вывести?
что-то я сильно сомневаюсь.
 

Фанат

oncle terrible
Команда форума
между двумя предложениями в русском языке принято ставить точку.
чтобы было ясно, о чём ты говоришь.

ну давай, показывай код, которым ты свою таблицу выводишь
 

kombo

Новичок
да пока нечего показать кроме того что выше, в правой колонке значения в массиве $colsp применително к данной таблице
ток________|6544___|____65456___|1,2,1
напряжение_|_87687______|46466__|2,1,1
частота_____|______78667________| 3,2,1
т.е. закономерность в массиве $colsp прослеживается - значение бОльшее значение ячейки >= сумме значений последующих ячеек, но как это обсчитать ? или я не туда полез ? мозг кипит уже :(
 

Фанат

oncle terrible
Команда форума
какой ты непонятливый - это что-то...
я
тебя
прпросил.
привести здесь
код
который выводит
таблицу
без колспанов.

как слышно меня, приём?
 

kombo

Новичок
сейчас буду бить на группы, т.е.
ток________|6544___|____65456___|1,2,1|1,2
напряжение_|_87687______|46466__|2,1,1|2,1
частота_____|______78667________| 3,2,1|3

-~{}~ 22.04.06 15:18:

Автор оригинала: Фанат
вот

PHP:
<table>
<?foreach($mainarr[0] as $item=>$itemval)
{
echo "<tr><td>$item";

foreach($mainarr as $key=>$valarr)  echo "<td>".$mainarr[$key][$item];
?>
</table>
-~{}~ 22.04.06 15:38:

вот как бы его на группы разбить ? может есть функция для этого ?
 

Фанат

oncle terrible
Команда форума
прикольный код.
а закрывающие теги уже в хтмл не обязательны?
вот как бы его на группы разбить ? может есть функция для этого ?
в пхп нет такого понятия - "группы".
соответственно, нету и функции.

короче.
тебе надо всего лишь получить цифру, котору подстаить в колспан.
для этого тебе надо перебирать массив майнарр от текущего полоджения $j до момента, когда значение изменится.
и считать.
и результат подсчёта вставлять в колспан.
причём это отдельный перебор, отдельный от вывода.
происходит он внутри второго форича, перед эхом
 

kombo

Новичок
примерно понял буду пробовать, спасибо! Пока остановился на варианте с подсветкой шрифта строки в случае если значения не совпадают, по признаку если max($colsp)<count($mainarr). Уродливо конечно, но надо срочно публиковать
 
Сверху