2013-10-04 5 views
0

Прежде всего, я очень рад, что наткнулся на этот сайт, ваши вопросы и ответы помогли мне с моими ранними заданиями :) Теперь мне нужна помощь :(Что я пытался сделать с мой код был создать таблицу, в которой она будет иметь 3 колонки «продукта» «Описание» «Цена». под каждым из следующих заголовков, я бы мои массивы «$productImage» быть под "продукт "и т. Д. Моя проблема в том, что я просто не могу понять, как создать таблицу при использовании функции foreach().PHP put foreach() внутри таблицы

Любая помощь будет принята с благодарностью!

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title></title> 
    </head> 
<body> 

<?php 

    $productImage = array('http://www.rudebaguette.com/assets/PlayStation4 FeaturedImage.jpg', 'http://cdn0.mos.techradar.futurecdn.net//art/games_consoles/Xbox%20One/Press%20shots/Xbox%20One%20family-580-90.jpg', 'http://www.blogcdn.com/de.engadget.com/media/2009/08/razer-naga-mmo-mouse-all-set-to-create-a-new-world-record11.jpg', 'http://cdn1.mos.techradar.futurecdn.net//art/gadgets/Google%20Glass/google_glass_grey-580-90.jpg', 'http://img1.targetimg1.com/wcsstore/TargetSAS//img/p/10/02/10029875.jpg'); 
    $description = array('PS4 ', 'Xbox One', 'Razer Naga', 'Google Glass', 'Magic Bullet'); 
    $price = array('400', '350', '70', '300', '50'); 
    echo '<table>'; 
    foreach ($productImage as $pic) 
    { 
     echo '<tr>'; 
     echo '<td>'; 
     echo "<img src='".$pic."' width='200' height='180'>"; 
     echo '</td>'; 
     echo '</tr>';  
    } 

    foreach ($description as $des) 
    { 
     echo '<tr>'; 
     echo '<td>'; 
     echo $des; 
     echo '</td>'; 
     echo '</tr>'; 
    } 

    foreach ($price as $m) 
    { 
     echo '<tr>'; 
     echo '<td>'; 
     echo $m; 
     echo '</td>'; 
     echo '</tr>'; 
    } 

?> 

ответ

1

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

<!DOCTYPE html> 
<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title></title> 
    </head> 
    <body> 
    <?php 
     $productImage = array('http://www.rudebaguette.com/assets/PlayStation4 FeaturedImage.jpg', 'http://cdn0.mos.techradar.futurecdn.net//art/games_consoles/Xbox%20One/Press%20shots/Xbox%20One%20family-580-90.jpg', 'http://www.blogcdn.com/de.engadget.com/media/2009/08/razer-naga-mmo-mouse-all-set-to-create-a-new-world-record11.jpg', 'http://cdn1.mos.techradar.futurecdn.net//art/gadgets/Google%20Glass/google_glass_grey-580-90.jpg', 'http://img1.targetimg1.com/wcsstore/TargetSAS//img/p/10/02/10029875.jpg'); 
     $description = array('PS4 ', 'Xbox One', 'Razer Naga', 'Google Glass', 'Magic Bullet'); 

     $price = array('400', '350', '70', '300', '50'); 

     echo '<table>'; 
    echo "<tr><td>Product</td><td>description</td><td>Price</td></tr>"; 
    foreach ($productImage as $key=>$pic) 
    { 
     echo "<tr>"; 
      echo '<td>'; 
      echo "<img src='".$productImage[$key]."' width='200' height='180'>"; 
      echo '</td>'; 
      echo '<td>'; 
      echo $description[$key]; 
      echo '</td>'; 
      echo '<td>'; 
      echo $price[$key]; 
      echo '</td>'; 
     echo '</tr>'; 
    } 
    ?> 
    </body> 
</html> 
+0

Работает как шарм! – Romel

2

Вам нужен будет только один цикл Еогеаспа сделать что-то подобное, но вы должны поместить их все в одном массиве:

<?php 
// You can have an array of arrays, like such. 
// This is called a multidimensional array 
$array = array(
    array(
     'image' => '...', 
     'desc' => '...', 
     'price' => '...' 
    ), 
    array(
     ... 
    ) 
); 
?> 

<table> 
    <?php foreach($array as $item): ?> 
    <tr> 
     <td><img src="<?php echo $item['image']; ?>: /></td> 
     <td><?php echo $item['desc']; ?></td> 
     <td><?php echo $item['price']; ?></td> 
    </tr> 
    <?php endforeach; ?> 
</table> 

Надеется, что это помогает.

+0

Я попробую! Большое спасибо за быстрый ответ :) Я отправлю назад результаты. Еще раз спасибо! – Romel

+0

Нет проблем, и добро пожаловать в StackOverflow :) –

0
<?php 
$productImage = array('http://www.rudebaguette.com/assets/PlayStation4 FeaturedImage.jpg', 'http://cdn0.mos.techradar.futurecdn.net//art/games_consoles/Xbox%20One/Press%20shots/Xbox%20One%20family-580-90.jpg', 'http://www.blogcdn.com/de.engadget.com/media/2009/08/razer-naga-mmo-mouse-all-set-to-create-a-new-world-record11.jpg', 'http://cdn1.mos.techradar.futurecdn.net//art/gadgets/Google%20Glass/google_glass_grey-580-90.jpg', 'http://img1.targetimg1.com/wcsstore/TargetSAS//img/p/10/02/10029875.jpg'); 

    $description = array('PS4 ', 'Xbox One', 'Razer Naga', 'Google Glass', 'Magic Bullet'); 

    $price = array('400', '350', '70', '300', '50'); 

    ?> 

    <table> 
     <tr> 
     <th>Image</th> 
     <th>Description</th> 
     <th>Price</th> 
     </tr> 
     <?php foreach ($productImage as $key => $value) 
      { ?> 
      <tr> 
       <td><img src="<?php echo $value; ?>" /></td> 
       <td><?php echo $description[$key]; ?></td> 
       <td><?php echo $price[$key]; ?></td> 
      </tr> 
      <?php } 
     ?> 
    </table> 
0

попробовать этот код это поможет вам.

echo "<table>"; 
for($index=0; $index<count($productImage); $index++) 
{ 
    echo"<tr>"; 
    echo "<td><img src='{$productimage[$index]}' width='200' height='180'></td>"; 
    echo "<td>{$description[$index]}</td>"; 
    echo "<td>{$price[$index]}</td>"; 
    echo "</td>"; 
} 
echo "</table>"; 

но Accoding для меня это не является хорошим решением, которое вы должны использовать массив массивов, как этот

$array = array(
    array(
     'image' => 'http://www.rudebaguette.com/assets/PlayStation4 FeaturedImage.jpg', 
     'desc' => 'PS4', 
     'price' => '400' 
    ), 
    array(
     ... 
    ) 
); 

, а затем использовать эту петлю

echo "<table>"; 
foreach($array in $item) 
{ 
    echo"<tr>"; 
    echo "<td><img src='{$item['image']}' width='200' height='180'></td>"; 
    echo "<td>{$item['desc']}</td>"; 
    echo "<td>{$item['price']}</td>"; 
    echo "</td>"; 
} 
echo "</table>"; 
+0

Только то, что я искал, я новичок в PHP и всей сценарии кодирования. Я помню, как мой профессор поднимал массив или массивы, а он сказал, что это сделает вещи намного эффективнее. Не могу поблагодарить вас, ребята, достаточно! – Romel

0

вот то, что мне нравится использовать. это немного более общий.

 <?php 
    $product_table = array(
     array(
      'image' => '<img src="http://www.rudebaguette.com/assets/PlayStation4 FeaturedImage.jpg" />', 
      'description' => 'PS4 ', 
      'price' => 400, 
     ), 
     array(
      'image' => '<img src="http://cdn0.mos.techradar.futurecdn.net//art/games_consoles/Xbox%20One/Press%20shots/Xbox%20One%20family-580-90.jpg" />', 
      'description' => 'Xbox One', 
      'price' => 350, 
     ), 
     array(
      'image' => '<img src="http://www.blogcdn.com/de.engadget.com/media/2009/08/razer-naga-mmo-mouse-all-set-to-create-a-new-world-record11.jpg" />', 
      'description' => 'Razer Naga', 
      'price' => 70, 
     ), 
     array(
      'image' => '<img src="http://cdn1.mos.techradar.futurecdn.net//art/gadgets/Google%20Glass/google_glass_grey-580-90.jpg" />', 
      'description' => 'Google Glass', 
      'price' => 300, 
     ), 
     array(
      'image' => '<img src="http://img1.targetimg1.com/wcsstore/TargetSAS//img/p/10/02/10029875.jpg" />', 
      'description' => 'Magic Bullet', 
      'price' => 50, 
     ), 
    ); 

    $first_row = TRUE; 

    echo '<table>'; 

    foreach ($product_table as $product_row) { 
     echo "<tr>"; 

     foreach ($product_row as $column_name => $column_value) { 
      if ($first_row) { 
       printf("<th>%s</th>", $column_name); 
       $first_row = FALSE; 
      } else { 
       printf("<td>%s</td>", $column_value); 
      } 
     } 

     echo "</tr>"; 
    } 

    echo "</table>"; 
Смежные вопросы