2013-07-09 3 views
0

У меня есть фиксированный стол 10 * 10, который печатает два для циклов. Некоторые изображения показаны в некотором задании table cell witch соответствуют указанному идентификатору строки и идентификатору столбца от администратора.Как указать номер индекса в ячейке таблицы с использованием номера строки и номера столбца

$table .= '<table border="1" cellspacing="0" cellpadding="2" class="banner_table">'; 
    for($x=1; $x<=10; $x++) { 
     $table .= "<tr>"; 
     for($y=1; $y<=10; $y++) { 
      $table .= "<td class='thumbnail'>"; 

       if (isset($temp[$x][$y])) { 
        $count++; 
        $table .= "<a target='_blank' href='" . ($temp[$x][$y]['img_url'] ? $temp[$x][$y]['img_url'] : "#") . "'> 
        <img id='imgid' src='admin/small-image/" . $temp[$x][$y]['img_title'] . "' width='20' height='20' /></a>";     
       } 
      else $table .="&nbsp;"; 
      $table .= "</td>"; 
     } 
     $table .= "</tr>"; 
    } 
    $table .= '</table>'; 

Как я должен дать номер индекса, такие как 1,2,2 ... для ячейки таблицы без учитывая row id и column id? Я хочу указать индекс № 1 (ROW 1 AND COL1), индекс № 2 (ROW1 и COL2).

Есть ли методы получения номера ячейки таблицы из идентификатора строки и идентификатора столбца?

ответ

2
// Index number to row and column: 
$index_no = 13; // Number from 1 to 100 
$y = floor(($index_no-1)/10)+1; 
$x = $index_no-($y-1)*10; 

// Row and column to index number: 
$x = 4; 
$y = 3; 
$index_no = ($y-1)*10+$x; // Number from 1 to 100 
+1

Чтобы получить $ x в первом случае, я думаю, что было бы быстрее сначала получить $ y, а затем вычесть $ y * 10 в $ index_no. То есть '$ y = floor (($ index_no-1)/10) +1; $ x = $ index_no - $ y * 10; ' – Sikian

+0

Вы правы, я провел тест скорости, и, похоже, это на 9% быстрее. (по крайней мере, на моем сервере с PHP 5.3.3) Я отредактирую свой ответ. –

+0

Кажется, get $ x в первом случае неверен. если index_no равно 13, $ y = 1 и $ x = -37 – Miuranga

Смежные вопросы