2010-03-18 7 views
1

Я не уверен, насколько сложно это, но у меня есть массив и хотелось бы поместить его в таблицу html. мне нужно иметь две строки массива в каждом ряду, так что если бы это было массив:Создание таблицы из массива PHP

$array1 = array(
    1 => 'one', 
    2 => 'two', 
    3 => 'three', 
    4 => 'four', 
    5 => "five", 
    6 => 'six', 
    ); 

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

| one | two | 
|three| four | 
|five | six | 

Это мой код:

$db = new Database(DB_SERVER, DB_USER, DB_PASS, DB_DATABASE); 
$db->connect(); 

    $sql = "SELECT ID, movieno 
      FROM movies 
      ORDER BY ID DESC 
      LIMIT 6 "; 

    $rows = $db->query($sql); 

    print '<table width="307" border="0" cellspacing="5" cellpadding="4">'; 
    while ($record = $db->fetch_array($rows)) { 
     $vidaidi = $record['movieno']; 
     print <<<END 
     <tr> 
      <td> 
       <a href="http://www.youtube.com/watch?v=$vidaidi" target="_blank"> 

       <img src="http://img.youtube.com/vi/$vidaidi/1.jpg" width="123" height="80"></a> 
      </td> 
     </tr> 
    END; 
    } 
    print '</table>'; 

Я хочу поставить его на две колонки.

+0

если я распечатать Ou $ запись я получаю: Resource ID # 5, если я print $ vidaidi i get Array ([ID] => 61 [movieno] => VpWnUkUdUA) хммм .. я получаю только 1 строку в массиве! как извлечь все данные в 1 массив? – robertdd

ответ

2

Попробуйте этот код ...

<?php 

$array1 = array(
       1 => 'one', 
       2 => 'two', 
       3 => 'three', 
       4 => 'four', 
       5 => "five", 
       6 => 'six', 
       ); 

$val = current ($array1) ; 
print "<table border=1>"; 
while ($val) 
{ 
    print "<tr> <td> $val </td> "; 
    $val = next ($array1) ; 
    print "<td> $val </td> </tr> "; 
    print "\n"; 
    $val = next ($array1); 
} 

print "</table>"; 

?> 
0

Вы можете сделать это с помощью многомерного массива, как это: http://www.terrawebdesign.com/multidimensional.php

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

Вы можете использовать print_r() для печати содержимого массива как встроенного способа просмотра массива.

2
$array1 = array(
    1 => 'one', 
    2 => 'two', 
    3 => 'three', 
    4 => 'four', 
    5 => "five", 
    6 => 'six', 
    ); 

echo '<table>'; 
for ($i = 1; $i <= 7; $i++) { 
    if ($i % 2 == 1) echo '<tr>'; 
    echo "<td>{$array1[$i]}</td>"; 
    if ($i % 2 == 2) echo '</tr>'; 
} 
echo '</table>'; 
0
echo "<table>"; 
for($i=0;$i+=2;$i<count($array1)) 
{ 
    echo "<tr><td>".$array1[$i]."</td><td>".isset($array1[$i+1])?$array1[$i+1]:'no value'."</td></tr>"; 
} 
echo "</table>" 
0

Вы можете сделать что-то вроде:

print "<table>"; 
for($i=1;$i<=count($arr);$i++) { 
     if($i%2) 
       print"<tr><td>$arr[$i]</td>"; 
     else 
       print"<td>$arr[$i]</td></tr>\n"; 
} 
print "</table>"; 
Смежные вопросы