Показать массив в HTML-таблице - PullRequest
2 голосов
/ 05 мая 2010

У меня есть этот массив:

Array
(
    [page] => Array
        (
            [0] => add
            [1] => edit
            [2] => delete
            [3] => search
        )

    [category] => Array
        (
            [0] => add
            [1] => edit
            [2] => export
        )
   )

И я хочу, чтобы он отображался в виде HTML-таблицы следующим образом:

Page - Category
add - add
edit - edit
delete - export
search
search

Я пытался разными способами, но ничего не вышло, какие-то решения?

Ответы [ 4 ]

5 голосов
/ 05 мая 2010

Предполагая, что это PHP и что выравнивание просто основано на индексе массива:

<?php
$var['page'] = array('add', 'edit', 'delete', 'search');
$var['category'] = array('add', 'edit', 'export');

$pages = count($var['page']);
$categories = count($var['categories']);
$max = ($pages > $categories ? $pages : $categories);

echo '<table>';
for ($i = 0; $i < $max; $i++)
{
    echo '<tr>';
    echo "<td>{$var['page'][$i]}</td>";
    echo "<td>{$var['category'][$i]}</td>";
    echo '</tr>';
}
echo '</table>';
?>
0 голосов
/ 31 марта 2011

У меня есть опыт получения результата из базы данных, которая является массивом. Я сделал класс в качестве контейнера для единого набора результатов, который состоит из нескольких строк. Просто получите собственность с помощью getter или получите доступ к ней напрямую, если публично.

0 голосов
/ 05 мая 2010

извините, я не пометил как PHP ... вот код моей последней попытки

echo "<table>";    
for($i=0;$i<count($array);$i++)
{
    echo "<tr>";
    foreach($array as $key=>$value)
    {
        echo "<td>".$array[$key][$i]."</td>";
    }
    echo "</tr>";
}
echo "</table>";

но в любом случае, ответ JYelton сработал довольно хорошо, спасибо = D

0 голосов
/ 05 мая 2010

Предполагается, что страниц больше, чем категорий, и что они содержатся в переменных $ Array ['pages'] и $ Array ['category']:

print '<table><tr><td>Page</td><td>Category</td></tr>';
for ($i=0; $i< sizeof($Array['pages']; $i++)
{
 print '<tr><td>';
 print $Array['pages'][$i];
 print '</td><td>';
 if ($i < sizeof($Array['categories']))
    print $Array['categories'][$i];
 print '</td></tr>';
}
print '</table>';

Есть более элегантные способы, но это должно сработать.

...