Выкарыстанне RowSpan з выхадам масіва да табліцы ў PHP

Я шукаю, каб змяніць табліцу на старонцы, каб ўключаць у сябе зьлітыя радка.

Вось код PHP, які мае справу з выхадам з БД MySQL:

######## PRINT OUT TABLE WITH YEARS AND OFFICES PLUS NAMES IN CELLS ########    
for ($y = $year_max; $y >=$year_min; $y--){
    echo '<tr><th>'.$y.'</th>';

    for ($i = 0; $i

Табліцы ніжэй генеруецца з шматмернага масіва, такія як непасрэдна ніжэй;

array (  

[2013] => Array
    (
        [President] => John Mills
        [Internal VP] => Virgil Bagdonas
        [External VP] => Reid Gilmore
        [Treasurer] => Todd Heino
        [Secretary] => Eric Holmquist
        [Newsletter] => Art Bodwell
        [Webmaster] => Dave Eaton
        [Photographer] => Rick Angus
        [Video Librarian] => Mike Peters
        [Store Manager] => Kevin Nee
    )

[2012] => Array
    (
        [President] => Dave Eaton
        [Internal VP] => Jim Metcalf
        [External VP] => Reid Gilmore
        [Treasurer] => Mike Peters
        [Secretary] => Eric Holmquist
        [Newsletter] => Art Bodwell
        [Webmaster] => Dave Eaton
        [Photographer] => Peter Wilcox
        [Video Librarian] => Ray Asselin
        [Store Manager] => Joe Giroux
    )

[2011] => Array
    (
        [President] => Charlie Croteau
        [Internal VP] => Reid Gilmore
        [External VP] => Rick Angus
        [Treasurer] => Mike Peters
        [Secretary] => Eric Holmquist
        [Newsletter] => Ron Rocheleau
        [Webmaster] => Dave Eaton
        [Photographer] => Peter Wilcox
        [Video Librarian] => Ray Asselin
        [Book Librarian] => Roger Boisvert
        [Store Manager] => Mike Smith
    )

... і г.д.

Мой PHP код зараз генеруе гэтую табліцу з БД MySQL:

<tr>
    <th>Year</th>
    <th>President</th>
    <th>Internal VP</th>
    <th>External VP</th>
    <th>Treasurer</th>
    <th>Secretary</th>
    <th>Webmaster</th>
    <th>Newsletter</th>
    <th>Photographer</th>
    <th>Video Librarian</th>
    <th>Book Librarian</th>
    <th>Store Manager</th>
</tr>

<tr>
    <th>2013</th>
    <td>John Mills</td>
    <td>Virgil Bagdonas</td>
    <td>Reid Gilmore</td>
    <td>Todd Heino</td>
    <td>Eric Holmquist</td>
    <td>Dave Eaton</td>
    <td>Art Bodwell</td>
    <td>Rick Angus</td>
    <td>Mike Peters</td>
    <td></td>
    <td>Kevin Nee</td>
</tr>
<tr>
    <th>2012</th>
    <td>Dave Eaton</td>
    <td>Jim Metcalf</td>
    <td>Reid Gilmore</td>
    <td>Mike Peters</td>
    <td>Eric Holmquist</td>
    <td>Dave Eaton</td>
    <td>Art Bodwell</td>
    <td>Peter Wilcox</td>
    <td>Ray Asselin</td>
    <td></td>
    <td>Joe Giroux</td>
</tr>
<tr>
    <th>2011</th>
    <td>Charlie Croteau</td>
    <td>Reid Gilmore</td>
    <td>Rick Angus</td>
    <td>Mike Peters</td>
    <td>Eric Holmquist</td>
    <td>Dave Eaton</td>
    <td>Ron Rocheleau</td>
    <td>Peter Wilcox</td>
    <td>Ray Asselin</td>
    <td>Roger Boisvert</td>
    <td>Mike Smith</td>
</tr>

Але я хацеў бы, каб змяніць масіў апрацоўкі вываду, каб атрымаць наступнае:

<tr>
    <th>Year</th>
    <th>President</th>
    <th>Internal VP</th>
    <th>External VP</th>
    <th>Treasurer</th>
    <th>Secretary</th>
    <th>Webmaster</th>
    <th>Newsletter</th>
    <th>Photographer</th>
    <th>Video Librarian</th>
    <th>Book Librarian</th>
    <th>Store Manager</th>
</tr>
<tr>
    <th>2013</th>
    <td>John Mills</td>
    <td>Virgil Bagdonas</td>
    <td rowspan= "3">Reid Gilmore</td>
    <td>Todd Heino</td>
    <td rowspan="3">Eric Holmquist</td>
    <td rowspan="9">Dave Eaton</td>
    <td rowspan="2">Art Bodwell</td>
    <td>Rick Angus</td>
    <td>Mike Peters</td>
    <td></td>
    <td>Kevin Nee</td>
</tr>
<tr>
    <th>2012</th>
    <td>Dave Eaton</td>
    <td>Jim Metcalf</td>
    <td rowspan="2">Mike Peters</td>
    <td>Peter Wilcox</td>
    <td rowspan="3">Ray Asselin</td>
    <td></td>
    <td>Joe Giroux</td>
</tr>
<tr>
    <th>2011</th>
    <td>Charlie Croteau</td>
    <td>Rick Angus</td>
    <td>Ron Rocheleau</td>
    <td>Peter Wilcox</td>
    <td>Roger Boisvert</td>
    <td>Mike Smith</td>
</tr>

Любыя высновы аб тым, як дадаць сцяг ці лічыльнік для дасягнення гэтай мэты можна толькі вітаць. Дзякуй!

2
Я думаю, што вы маеце на ўвазе Аб'яднанне слупкоў .Проверить гэта .
дададзена аўтар ncm, крыніца
ОК Калі ласка, праверце мой адказ.
дададзена аўтар ncm, крыніца
Я думаю, што вы маеце на ўвазе Аб'яднанне слупкоў .Проверить гэта .
дададзена аўтар ncm, крыніца
Я думаю, што вы маеце на ўвазе Аб'яднанне слупкоў .Проверить гэта .
дададзена аўтар ncm, крыніца

7 адказы

I wrote a library a few days ago that can handle this stuff..
Have a look at https://github.com/donquixote/cellbrush

Перавага бібліятэкі з'яўляецца тое, што вам не трэба думаць аб парадку клетак у HTML, і якія павінны быць прапушчаны з-за RowSpan або Colspan клеткі. Замест гэтага, вы можаце проста «намаляваць» клетку дзе-небудзь у сетцы, з якой бы ні RowSpan або Colspan вы хочаце. І замест таго, каб паказаць нумар для RowSpan або Colspan, вы проста паказаць першы і апошні радкоў і слупкоў імёны Роспан/Colspan рэгіёну.

напрыклад

$table->td(['2011', '2013'], 'Secretary', 'Eric Holmquist');

Ніжэй прыведзены код, які стварае табліцу вы прасілі, з дапамогай гэтай бібліятэкі. Вам усё яшчэ трэба крыху логікі для разліку інтэрвалаў, але, па меншай меры, вам не трэба турбавацца аб цэласнасці табліцы HTML.

(Гэтае пытанне даволі стары, але ўсё яшчэ можа быць людзі, якія працуюць у ёй ад Google. Так што я спадзяюся, што гэта можа быць карысным.)

<?php

require_once __DIR__ . '/vendor/autoload.php';

$data = array(
  '2013' => array(
    'President' => 'John Mills',
    'Internal VP' => 'Virgil Bagdonas',
    'External VP' => 'Reid Gilmore',
    'Treasurer' => 'Todd Heino',
    'Secretary' => 'Eric Holmquist',
    'Newsletter' => 'Art Bodwell',
    'Webmaster' => 'Dave Eaton',
    'Photographer' => 'Rick Angus',
    'Video Librarian' => 'Mike Peters',
    'Store Manager' => 'Kevin Nee',
  ),
  '2012' => array(
    'President' => 'Dave Eaton',
    'Internal VP' => 'Jim Metcalf',
    'External VP' => 'Reid Gilmore',
    'Treasurer' => 'Mike Peters',
    'Secretary' => 'Eric Holmquist',
    'Newsletter' => 'Art Bodwell',
    'Webmaster' => 'Dave Eaton',
    'Photographer' => 'Peter Wilcox',
    'Video Librarian' => 'Ray Asselin',
    'Store Manager' => 'Joe Giroux',
  ),
  '2011' => array(
    'President' => 'Charlie Croteau',
    'Internal VP' => 'Reid Gilmore',
    'External VP' => 'Rick Angus',
    'Treasurer' => 'Mike Peters',
    'Secretary' => 'Eric Holmquist',
    'Newsletter' => 'Ron Rocheleau',
    'Webmaster' => 'Dave Eaton',
    'Photographer' => 'Peter Wilcox',
    'Video Librarian' => 'Ray Asselin',
    'Book Librarian' => 'Roger Boisvert',
    'Store Manager' => 'Mike Smith',
  ),
);

// Collect positions to build table columns.
$positions = [];
foreach ($data as $year => $yearData) {
  foreach ($yearData as $position => $person) {
    $positions[$position] = TRUE;
  }
}
$positions = array_keys($positions);

// Define table columns.
$table = (new \Donquixote\Cellbrush\Table())
  ->addColName('year')
  ->addColNames($positions)
;

// Create thead section.
$headRow = $table->thead()->addRow('head');
$headRow->th('year', 'Year');
foreach ($positions as $position) {
  $headRow->th($position, $position);
}

// Create table rows with labels based on year.
$years = array_keys($data);
$table->addRowNames($years);
foreach ($years as $year) {
  $table->th($year, 'year', $year);
}

// Fill table cells in each column.
foreach ($positions as $position) {
  $periodPerson = NULL;
  $periodFirstYear = NULL;
  $periodLastYear = NULL;
  $column = $table->colHandle($position);
  foreach ($years as $year) {
    $person = isset($data[$year][$position])
      ? $data[$year][$position]
      : '-';
    if (!isset($periodFirstYear)) {
     //First year.
      $periodFirstYear = $year;
    }
    elseif ($person !== $periodPerson) {
     //Add a table cell with rowspan.
      $column->td([$periodFirstYear, $periodLastYear], $periodPerson);
      $periodFirstYear = $year;
    }
    $periodPerson = $person;
    $periodLastYear = $year;
  }
  if (isset($periodFirstYear)) {
   //Add a table cell with rowspan.
    $column->td([$periodFirstYear, $periodLastYear], $periodPerson);
  }
}

print $table->render();
0
дададзена

I wrote a library a few days ago that can handle this stuff..
Have a look at https://github.com/donquixote/cellbrush

Перавага бібліятэкі з'яўляецца тое, што вам не трэба думаць аб парадку клетак у HTML, і якія павінны быць прапушчаны з-за RowSpan або Colspan клеткі. Замест гэтага, вы можаце проста «намаляваць» клетку дзе-небудзь у сетцы, з якой бы ні RowSpan або Colspan вы хочаце. І замест таго, каб паказаць нумар для RowSpan або Colspan, вы проста паказаць першы і апошні радкоў і слупкоў імёны Роспан/Colspan рэгіёну.

напрыклад

$table->td(['2011', '2013'], 'Secretary', 'Eric Holmquist');

Ніжэй прыведзены код, які стварае табліцу вы прасілі, з дапамогай гэтай бібліятэкі. Вам усё яшчэ трэба крыху логікі для разліку інтэрвалаў, але, па меншай меры, вам не трэба турбавацца аб цэласнасці табліцы HTML.

(Гэтае пытанне даволі стары, але ўсё яшчэ можа быць людзі, якія працуюць у ёй ад Google. Так што я спадзяюся, што гэта можа быць карысным.)

<?php

require_once __DIR__ . '/vendor/autoload.php';

$data = array(
  '2013' => array(
    'President' => 'John Mills',
    'Internal VP' => 'Virgil Bagdonas',
    'External VP' => 'Reid Gilmore',
    'Treasurer' => 'Todd Heino',
    'Secretary' => 'Eric Holmquist',
    'Newsletter' => 'Art Bodwell',
    'Webmaster' => 'Dave Eaton',
    'Photographer' => 'Rick Angus',
    'Video Librarian' => 'Mike Peters',
    'Store Manager' => 'Kevin Nee',
  ),
  '2012' => array(
    'President' => 'Dave Eaton',
    'Internal VP' => 'Jim Metcalf',
    'External VP' => 'Reid Gilmore',
    'Treasurer' => 'Mike Peters',
    'Secretary' => 'Eric Holmquist',
    'Newsletter' => 'Art Bodwell',
    'Webmaster' => 'Dave Eaton',
    'Photographer' => 'Peter Wilcox',
    'Video Librarian' => 'Ray Asselin',
    'Store Manager' => 'Joe Giroux',
  ),
  '2011' => array(
    'President' => 'Charlie Croteau',
    'Internal VP' => 'Reid Gilmore',
    'External VP' => 'Rick Angus',
    'Treasurer' => 'Mike Peters',
    'Secretary' => 'Eric Holmquist',
    'Newsletter' => 'Ron Rocheleau',
    'Webmaster' => 'Dave Eaton',
    'Photographer' => 'Peter Wilcox',
    'Video Librarian' => 'Ray Asselin',
    'Book Librarian' => 'Roger Boisvert',
    'Store Manager' => 'Mike Smith',
  ),
);

// Collect positions to build table columns.
$positions = [];
foreach ($data as $year => $yearData) {
  foreach ($yearData as $position => $person) {
    $positions[$position] = TRUE;
  }
}
$positions = array_keys($positions);

// Define table columns.
$table = (new \Donquixote\Cellbrush\Table())
  ->addColName('year')
  ->addColNames($positions)
;

// Create thead section.
$headRow = $table->thead()->addRow('head');
$headRow->th('year', 'Year');
foreach ($positions as $position) {
  $headRow->th($position, $position);
}

// Create table rows with labels based on year.
$years = array_keys($data);
$table->addRowNames($years);
foreach ($years as $year) {
  $table->th($year, 'year', $year);
}

// Fill table cells in each column.
foreach ($positions as $position) {
  $periodPerson = NULL;
  $periodFirstYear = NULL;
  $periodLastYear = NULL;
  $column = $table->colHandle($position);
  foreach ($years as $year) {
    $person = isset($data[$year][$position])
      ? $data[$year][$position]
      : '-';
    if (!isset($periodFirstYear)) {
     //First year.
      $periodFirstYear = $year;
    }
    elseif ($person !== $periodPerson) {
     //Add a table cell with rowspan.
      $column->td([$periodFirstYear, $periodLastYear], $periodPerson);
      $periodFirstYear = $year;
    }
    $periodPerson = $person;
    $periodLastYear = $year;
  }
  if (isset($periodFirstYear)) {
   //Add a table cell with rowspan.
    $column->td([$periodFirstYear, $periodLastYear], $periodPerson);
  }
}

print $table->render();
0
дададзена

I wrote a library a few days ago that can handle this stuff..
Have a look at https://github.com/donquixote/cellbrush

Перавага бібліятэкі з'яўляецца тое, што вам не трэба думаць аб парадку клетак у HTML, і якія павінны быць прапушчаны з-за RowSpan або Colspan клеткі. Замест гэтага, вы можаце проста «намаляваць» клетку дзе-небудзь у сетцы, з якой бы ні RowSpan або Colspan вы хочаце. І замест таго, каб паказаць нумар для RowSpan або Colspan, вы проста паказаць першы і апошні радкоў і слупкоў імёны Роспан/Colspan рэгіёну.

напрыклад

$table->td(['2011', '2013'], 'Secretary', 'Eric Holmquist');

Ніжэй прыведзены код, які стварае табліцу вы прасілі, з дапамогай гэтай бібліятэкі. Вам усё яшчэ трэба крыху логікі для разліку інтэрвалаў, але, па меншай меры, вам не трэба турбавацца аб цэласнасці табліцы HTML.

(Гэтае пытанне даволі стары, але ўсё яшчэ можа быць людзі, якія працуюць у ёй ад Google. Так што я спадзяюся, што гэта можа быць карысным.)

<?php

require_once __DIR__ . '/vendor/autoload.php';

$data = array(
  '2013' => array(
    'President' => 'John Mills',
    'Internal VP' => 'Virgil Bagdonas',
    'External VP' => 'Reid Gilmore',
    'Treasurer' => 'Todd Heino',
    'Secretary' => 'Eric Holmquist',
    'Newsletter' => 'Art Bodwell',
    'Webmaster' => 'Dave Eaton',
    'Photographer' => 'Rick Angus',
    'Video Librarian' => 'Mike Peters',
    'Store Manager' => 'Kevin Nee',
  ),
  '2012' => array(
    'President' => 'Dave Eaton',
    'Internal VP' => 'Jim Metcalf',
    'External VP' => 'Reid Gilmore',
    'Treasurer' => 'Mike Peters',
    'Secretary' => 'Eric Holmquist',
    'Newsletter' => 'Art Bodwell',
    'Webmaster' => 'Dave Eaton',
    'Photographer' => 'Peter Wilcox',
    'Video Librarian' => 'Ray Asselin',
    'Store Manager' => 'Joe Giroux',
  ),
  '2011' => array(
    'President' => 'Charlie Croteau',
    'Internal VP' => 'Reid Gilmore',
    'External VP' => 'Rick Angus',
    'Treasurer' => 'Mike Peters',
    'Secretary' => 'Eric Holmquist',
    'Newsletter' => 'Ron Rocheleau',
    'Webmaster' => 'Dave Eaton',
    'Photographer' => 'Peter Wilcox',
    'Video Librarian' => 'Ray Asselin',
    'Book Librarian' => 'Roger Boisvert',
    'Store Manager' => 'Mike Smith',
  ),
);

// Collect positions to build table columns.
$positions = [];
foreach ($data as $year => $yearData) {
  foreach ($yearData as $position => $person) {
    $positions[$position] = TRUE;
  }
}
$positions = array_keys($positions);

// Define table columns.
$table = (new \Donquixote\Cellbrush\Table())
  ->addColName('year')
  ->addColNames($positions)
;

// Create thead section.
$headRow = $table->thead()->addRow('head');
$headRow->th('year', 'Year');
foreach ($positions as $position) {
  $headRow->th($position, $position);
}

// Create table rows with labels based on year.
$years = array_keys($data);
$table->addRowNames($years);
foreach ($years as $year) {
  $table->th($year, 'year', $year);
}

// Fill table cells in each column.
foreach ($positions as $position) {
  $periodPerson = NULL;
  $periodFirstYear = NULL;
  $periodLastYear = NULL;
  $column = $table->colHandle($position);
  foreach ($years as $year) {
    $person = isset($data[$year][$position])
      ? $data[$year][$position]
      : '-';
    if (!isset($periodFirstYear)) {
     //First year.
      $periodFirstYear = $year;
    }
    elseif ($person !== $periodPerson) {
     //Add a table cell with rowspan.
      $column->td([$periodFirstYear, $periodLastYear], $periodPerson);
      $periodFirstYear = $year;
    }
    $periodPerson = $person;
    $periodLastYear = $year;
  }
  if (isset($periodFirstYear)) {
   //Add a table cell with rowspan.
    $column->td([$periodFirstYear, $periodLastYear], $periodPerson);
  }
}

print $table->render();
0
дададзена

паспрабуйце гэтую надзею на працу. (таму што я не запускаць яго, але думаю, павінна працаваць).

КОД для Colspan:

for ($y = $year_max; $y >=$year_min; $y--){
    echo '<tr><th>'.$y.'</th>';

    $lastVal='';
    $buf=array();
    for ($i = 0; $i$lastVal,'rep'=>1);
        }

        foreach($buf as $arr){
            echo '<td'.($arr['rep']>1?' colspan="'.$arr['rep'].'"':'') . '>'.$arr['data'].'</td>';
        }


        }   echo '</tr>';
    }//END FOR 

NOTICE: error of code corrected


КОД для RowSpan: (. Я думаю, што гэта можа быць ўніз лягчэй, чым гэта Бур я стараўся быць добрым).

$buf=array();
for ($i = 0; $i=$year_min; $y--){
        (!isset($data[$y][$offices_used[$i]])?($data[$y][$offices_used[$i]]=''):'');// Im not sure that is really needed
        if($lastVal==$data[$y][$offices_used[$i]]){
            $buf[$i][count($buf[$i])-1]['rep']++;
        }else{
            $lastVal=$data[$y][$offices_used[$i]];
            $buf[$i][$year_max-$y]=array('data'=>$lastVal,'rep'=>1);
        }
    }
}
$mtemp=$year_max;
foreach($buf as $row){
    echo '<tr><th>'.$mtemp.'</th>';
    foreach($row as $rec){
        echo '<td'.($rec['rep']>1?' rowspan="'.$rec['rep'].'"':'') . '>'.$rec['data'].'</td>';
    }
    $mtemp--;
    echo '</tr>';
}

Вельмі спадзяюся на працу.

NOTICE: corrected

0
дададзена
О, не, я думаю, што вы адрэдагавалі маю прапанову, таму што я выкарыстаць Colspan але спасылку вы паслалі мяне RowSpan калі ласка, праверце <�б> гэта
дададзена аўтар ncm, крыніца
прабачце Im назад і якая памылка. а таксама я думаю, што я няправільна зразумеў вас, таму дазвольце мне праверыць рэчы
дададзена аўтар ncm, крыніца
ОК, так што вы хочаце вельмі цяжкая рэч, дайце мне падумаць
дададзена аўтар ncm, крыніца
OK вы проста хочаце RowSpan або абодва RowSpan і Colspan? jsfiddle.net/egd8G
дададзена аўтар ncm, крыніца
калі ласка. (-: ОК, так што я паспрабую напісаць яго для RowSpan толькі трэба час, калі ласка, праверце кожныя 15 мін.
дададзена аўтар ncm, крыніца
Дарэчы @ eaton9999 новы карыстальнік дазвольце мне сказаць вам somthing.here гэта сайт ў простым Q і форму, і калі вы хочаце атрымаць адказ на складанае пытанне або доўгі пытанне, які вы павінны ўсталяваць кропку Баунті для гэтага, можа быць, 100 (. - : але я толькі што зрабіў гэта, таму што я люблю that.and ўсё, што я чакаў, што ты павінен быць добрым прыхільнікам (прымаць і/або галасаваць мае, а іншыя адказы і каментары) (- .:
дададзена аўтар ncm, крыніца
калі ласка, напішыце памылкі, якія вы атрымаеце, а таксама адрэдагаваныя. а таксама думаю, што праверыць гэта дапаможа вам атрымаць рэчы. stackoverflow.com/faq
дададзена аўтар ncm, крыніца
гэтая спасылка на які з іх? новы ??
дададзена аўтар ncm, крыніца
Я не магу адкрыць сваю старонку вы можаце ўставіць HTML з пакласці іх як jsfiddle?
дададзена аўтар ncm, крыніца
Можа быць, амаль, але пакуль яшчэ няма. Я думаю, што зразумець гэтую канцэпцыю. Дзякуй. Вось што я хачу на: cnew.org/cnew_officer-history-sample-merged- rows.html і што я атрымліваю рэалізацыі ваша прапанова па адрасе: cnew.org/officer- Гісторыя-mergerow.php
дададзена аўтар eaton9999, крыніца
Спрабаваў апошняе, але не ісці. См jsfiddle.net/eaton9999/tSFhP Правераць назад 6pm EST. Дзякуй зноў. Акрамя таго - я бачу вялікую перавагу на будучы актыўным членам гэтага сайта. Буду галасаваць і рабіць тое, што я магу, каб падтрымаць яго. Дзякуй за любое вашых саветаў. думаў RowSpan пытанне прасцей, але будзе выглядаць у тое, што шчодрасць.
дададзена аўтар eaton9999, крыніца
Проста RowSpan, як Аб'яднанне слупкоў іншае пытанне я пагуляў, але здаецца значна менш карысным. Давайце заставацца толькі RowSpan. (Дзякуй за дапамогу!)
дададзена аўтар eaton9999, крыніца
дададзена аўтар eaton9999, крыніца
Ён рэалізуе тое, што вы далі.
дададзена аўтар eaton9999, крыніца
паставілі назад Colspan і вынікі тут: jsfiddle.net/eaton9999/m9n63
дададзена аўтар eaton9999, крыніца
На жаль - Наогул-то я вырашыў, што гэта недагляд. Я шукаю трёе двукроп'я ня colspans ?? Хіба я нешта прапусціў. !? Таксама я атрымліваю EROR на лініі (Исеть ($ дадзеных [$ у] [$ offices_used [$ я]]) ($ дадзеных [$ у] [$ offices_us & ZWNJ; выд [$ я]] = '');: «»);//Я не ўпэўнены, што сапраўды патрэбны
дададзена аўтар eaton9999, крыніца
Гэта тое, што я нацэльванне jsfiddle.net/eaton9999/xY9z9 (ніколі не выкарыстоўваў jsfiddle раней -. Цікава ...)
дададзена аўтар eaton9999, крыніца

паспрабуйце гэтую надзею на працу. (таму што я не запускаць яго, але думаю, павінна працаваць).

КОД для Colspan:

for ($y = $year_max; $y >=$year_min; $y--){
    echo '<tr><th>'.$y.'</th>';

    $lastVal='';
    $buf=array();
    for ($i = 0; $i$lastVal,'rep'=>1);
        }

        foreach($buf as $arr){
            echo '<td'.($arr['rep']>1?' colspan="'.$arr['rep'].'"':'') . '>'.$arr['data'].'</td>';
        }


        }   echo '</tr>';
    }//END FOR 

NOTICE: error of code corrected


КОД для RowSpan: (. Я думаю, што гэта можа быць ўніз лягчэй, чым гэта Бур я стараўся быць добрым).

$buf=array();
for ($i = 0; $i=$year_min; $y--){
        (!isset($data[$y][$offices_used[$i]])?($data[$y][$offices_used[$i]]=''):'');// Im not sure that is really needed
        if($lastVal==$data[$y][$offices_used[$i]]){
            $buf[$i][count($buf[$i])-1]['rep']++;
        }else{
            $lastVal=$data[$y][$offices_used[$i]];
            $buf[$i][$year_max-$y]=array('data'=>$lastVal,'rep'=>1);
        }
    }
}
$mtemp=$year_max;
foreach($buf as $row){
    echo '<tr><th>'.$mtemp.'</th>';
    foreach($row as $rec){
        echo '<td'.($rec['rep']>1?' rowspan="'.$rec['rep'].'"':'') . '>'.$rec['data'].'</td>';
    }
    $mtemp--;
    echo '</tr>';
}

Вельмі спадзяюся на працу.

NOTICE: corrected

0
дададзена
OK вы проста хочаце RowSpan або абодва RowSpan і Colspan? jsfiddle.net/egd8G
дададзена аўтар ncm, крыніца
О, не, я думаю, што вы адрэдагавалі маю прапанову, таму што я выкарыстаць Colspan але спасылку вы паслалі мяне RowSpan калі ласка, праверце <�б> гэта
дададзена аўтар ncm, крыніца
прабачце Im назад і якая памылка. а таксама я думаю, што я няправільна зразумеў вас, таму дазвольце мне праверыць рэчы
дададзена аўтар ncm, крыніца
ОК, так што вы хочаце вельмі цяжкая рэч, дайце мне падумаць
дададзена аўтар ncm, крыніца
калі ласка. (-: ОК, так што я паспрабую напісаць яго для RowSpan толькі трэба час, калі ласка, праверце кожныя 15 мін.
дададзена аўтар ncm, крыніца
Дарэчы @ eaton9999 новы карыстальнік дазвольце мне сказаць вам somthing.here гэта сайт ў простым Q і форму, і калі вы хочаце атрымаць адказ на складанае пытанне або доўгі пытанне, які вы павінны ўсталяваць кропку Баунті для гэтага, можа быць, 100 (. - : але я толькі што зрабіў гэта, таму што я люблю that.and ўсё, што я чакаў, што ты павінен быць добрым прыхільнікам (прымаць і/або галасаваць мае, а іншыя адказы і каментары) (- .:
дададзена аўтар ncm, крыніца
калі ласка, напішыце памылкі, якія вы атрымаеце, а таксама адрэдагаваныя. а таксама думаю, што праверыць гэта дапаможа вам атрымаць рэчы. stackoverflow.com/faq
дададзена аўтар ncm, крыніца
гэтая спасылка на які з іх? новы ??
дададзена аўтар ncm, крыніца
Я не магу адкрыць сваю старонку вы можаце ўставіць HTML з пакласці іх як jsfiddle?
дададзена аўтар ncm, крыніца
Проста RowSpan, як Аб'яднанне слупкоў іншае пытанне я пагуляў, але здаецца значна менш карысным. Давайце заставацца толькі RowSpan. (Дзякуй за дапамогу!)
дададзена аўтар eaton9999, крыніца
дададзена аўтар eaton9999, крыніца
Можа быць, амаль, але пакуль яшчэ няма. Я думаю, што зразумець гэтую канцэпцыю. Дзякуй. Вось што я хачу на: cnew.org/cnew_officer-history-sample-merged- rows.html і што я атрымліваю рэалізацыі ваша прапанова па адрасе: cnew.org/officer- Гісторыя-mergerow.php
дададзена аўтар eaton9999, крыніца
Спрабаваў апошняе, але не ісці. См jsfiddle.net/eaton9999/tSFhP Правераць назад 6pm EST. Дзякуй зноў. Акрамя таго - я бачу вялікую перавагу на будучы актыўным членам гэтага сайта. Буду галасаваць і рабіць тое, што я магу, каб падтрымаць яго. Дзякуй за любое вашых саветаў. думаў RowSpan пытанне прасцей, але будзе выглядаць у тое, што шчодрасць.
дададзена аўтар eaton9999, крыніца
Ён рэалізуе тое, што вы далі.
дададзена аўтар eaton9999, крыніца
паставілі назад Colspan і вынікі тут: jsfiddle.net/eaton9999/m9n63
дададзена аўтар eaton9999, крыніца
На жаль - Наогул-то я вырашыў, што гэта недагляд. Я шукаю трёе двукроп'я ня colspans ?? Хіба я нешта прапусціў. !? Таксама я атрымліваю EROR на лініі (Исеть ($ дадзеных [$ у] [$ offices_used [$ я]]) ($ дадзеных [$ у] [$ offices_us & ZWNJ; выд [$ я]] = '');: «»);//Я не ўпэўнены, што сапраўды патрэбны
дададзена аўтар eaton9999, крыніца
Гэта тое, што я нацэльванне jsfiddle.net/eaton9999/xY9z9 (ніколі не выкарыстоўваў jsfiddle раней -. Цікава ...)
дададзена аўтар eaton9999, крыніца

паспрабуйце гэтую надзею на працу. (таму што я не запускаць яго, але думаю, павінна працаваць).

КОД для Colspan:

for ($y = $year_max; $y >=$year_min; $y--){
    echo '<tr><th>'.$y.'</th>';

    $lastVal='';
    $buf=array();
    for ($i = 0; $i$lastVal,'rep'=>1);
        }

        foreach($buf as $arr){
            echo '<td'.($arr['rep']>1?' colspan="'.$arr['rep'].'"':'') . '>'.$arr['data'].'</td>';
        }


        }   echo '</tr>';
    }//END FOR 

NOTICE: error of code corrected


КОД для RowSpan: (. Я думаю, што гэта можа быць ўніз лягчэй, чым гэта Бур я стараўся быць добрым).

$buf=array();
for ($i = 0; $i=$year_min; $y--){
        (!isset($data[$y][$offices_used[$i]])?($data[$y][$offices_used[$i]]=''):'');// Im not sure that is really needed
        if($lastVal==$data[$y][$offices_used[$i]]){
            $buf[$i][count($buf[$i])-1]['rep']++;
        }else{
            $lastVal=$data[$y][$offices_used[$i]];
            $buf[$i][$year_max-$y]=array('data'=>$lastVal,'rep'=>1);
        }
    }
}
$mtemp=$year_max;
foreach($buf as $row){
    echo '<tr><th>'.$mtemp.'</th>';
    foreach($row as $rec){
        echo '<td'.($rec['rep']>1?' rowspan="'.$rec['rep'].'"':'') . '>'.$rec['data'].'</td>';
    }
    $mtemp--;
    echo '</tr>';
}

Вельмі спадзяюся на працу.

NOTICE: corrected

0
дададзена
О, не, я думаю, што вы адрэдагавалі маю прапанову, таму што я выкарыстаць Colspan але спасылку вы паслалі мяне RowSpan калі ласка, праверце <�б> гэта
дададзена аўтар ncm, крыніца
прабачце Im назад і якая памылка. а таксама я думаю, што я няправільна зразумеў вас, таму дазвольце мне праверыць рэчы
дададзена аўтар ncm, крыніца
ОК, так што вы хочаце вельмі цяжкая рэч, дайце мне падумаць
дададзена аўтар ncm, крыніца
OK вы проста хочаце RowSpan або абодва RowSpan і Colspan? jsfiddle.net/egd8G
дададзена аўтар ncm, крыніца
калі ласка. (-: ОК, так што я паспрабую напісаць яго для RowSpan толькі трэба час, калі ласка, праверце кожныя 15 мін.
дададзена аўтар ncm, крыніца
Дарэчы @ eaton9999 новы карыстальнік дазвольце мне сказаць вам somthing.here гэта сайт ў простым Q і форму, і калі вы хочаце атрымаць адказ на складанае пытанне або доўгі пытанне, які вы павінны ўсталяваць кропку Баунті для гэтага, можа быць, 100 (. - : але я толькі што зрабіў гэта, таму што я люблю that.and ўсё, што я чакаў, што ты павінен быць добрым прыхільнікам (прымаць і/або галасаваць мае, а іншыя адказы і каментары) (- .:
дададзена аўтар ncm, крыніца
калі ласка, напішыце памылкі, якія вы атрымаеце, а таксама адрэдагаваныя. а таксама думаю, што праверыць гэта дапаможа вам атрымаць рэчы. stackoverflow.com/faq
дададзена аўтар ncm, крыніца
Я не магу адкрыць сваю старонку вы можаце ўставіць HTML з пакласці іх як jsfiddle?
дададзена аўтар ncm, крыніца
гэтая спасылка на які з іх? новы ??
дададзена аўтар ncm, крыніца
Проста RowSpan, як Аб'яднанне слупкоў іншае пытанне я пагуляў, але здаецца значна менш карысным. Давайце заставацца толькі RowSpan. (Дзякуй за дапамогу!)
дададзена аўтар eaton9999, крыніца
Можа быць, амаль, але пакуль яшчэ няма. Я думаю, што зразумець гэтую канцэпцыю. Дзякуй. Вось што я хачу на: cnew.org/cnew_officer-history-sample-merged- rows.html і што я атрымліваю рэалізацыі ваша прапанова па адрасе: cnew.org/officer- Гісторыя-mergerow.php
дададзена аўтар eaton9999, крыніца
Спрабаваў апошняе, але не ісці. См jsfiddle.net/eaton9999/tSFhP Правераць назад 6pm EST. Дзякуй зноў. Акрамя таго - я бачу вялікую перавагу на будучы актыўным членам гэтага сайта. Буду галасаваць і рабіць тое, што я магу, каб падтрымаць яго. Дзякуй за любое вашых саветаў. думаў RowSpan пытанне прасцей, але будзе выглядаць у тое, што шчодрасць.
дададзена аўтар eaton9999, крыніца
Гэта тое, што я нацэльванне jsfiddle.net/eaton9999/xY9z9 (ніколі не выкарыстоўваў jsfiddle раней -. Цікава ...)
дададзена аўтар eaton9999, крыніца
дададзена аўтар eaton9999, крыніца
Ён рэалізуе тое, што вы далі.
дададзена аўтар eaton9999, крыніца
паставілі назад Colspan і вынікі тут: jsfiddle.net/eaton9999/m9n63
дададзена аўтар eaton9999, крыніца
На жаль - Наогул-то я вырашыў, што гэта недагляд. Я шукаю трёе двукроп'я ня colspans ?? Хіба я нешта прапусціў. !? Таксама я атрымліваю EROR на лініі (Исеть ($ дадзеных [$ у] [$ offices_used [$ я]]) ($ дадзеных [$ у] [$ offices_us & ZWNJ; выд [$ я]] = '');: «»);//Я не ўпэўнены, што сапраўды патрэбны
дададзена аўтар eaton9999, крыніца

Якія вырашаюцца з дапамогай:

############################################################################
######## PRINT OUT TABLE WITH YEARS AND OFFICES PLUS NAMES IN CELLS ########    
for ($y = $year_max; $y >=$year_min; $y--){//Loop through years
    echo '<tr><th>'.$y.'</th>';

    for ($i = 0; $i'.$data[$y][$offices_used[$i]].'</td>';
            }

        }//END IF

        else {
            echo '<td align = "center"> - </td>';
        }//END ELSE

        }   echo '</tr>'; //End row of current year

}//END FOR Loop through years 
echo '</table>';

См http://jsfiddle.net/eaton9999/8gMVK/ для вываду выніковых старонак.

Яшчэ раз дзякуй imsiso і іншыя, хто дапамог!

0
дададзена