Циклический цикл php в HTML-таблицах - PullRequest
0 голосов
/ 07 июля 2019

Объявите одномерный массив для следующего: Код, Описание, Количество и Цена за единицу, используя следующие значения: Код: от A001 до A005 Описание: Мышь, Клавиатура, Монитор, Флэш-диск, Цена за единицу жесткого диска: 100, 2500,200, 300, 1500 Количество: 5,5,5,5,5

Я пытался использовать следующие коды, но это возвращает ошибку

<html>
<body>
<?php

    $product = array ("Code"=> array("A001", "A002", "A003", "A004","A005"),
    "Description"=>array("Mouse", "Monitor", "Keyboard", "FlashDisk", "HardDisk"), 
    "Quantity"=>array("5", "5", "5", "5", "5"),
    "UnitPrice"=>array("100", "2500","200","300","1500"));
?>
<table>
    <tr>
        <th align= center style="font-size: 20px;" colspan="5">COMPUTER STORE</th>
    </tr>
    <tr>
         <td align= center colspan="5">Full Name</td>
    </tr>
    <tr>
        <td height ="20" colspan="5"> </td>
    </tr>
    <tr>
        <td colspan="5"> </td>
    </tr>
    <tr>
        <th align= center style="font-size: 20px;" colspan="5">PRODUCT INFORMATION</th>
    </tr>
    <tr>
        <td height ="20" colspan="5"> </td>
    </tr>
    <tr>
         <th>Code</th>
         <th>Description</th>
         <th>Unit Price</th>enter code here
         <th>Quantity</th>
    </tr>

<?php

foreach ($product as $i_names => $i_values) {

    echo "<tr>"
            echo "<td>$i_values[0]</td>"
            ."<td>$i_values[1]</td>"
            ."<td>$i_values[2]</td>"
            ."<td>$i_values[3]</td>"
            ."<td>$i_values[4]</td>"
        ."</tr>";
}

?>

</table>
</body>
</html>

Я ожидаю таблицу, которая отображает детали массивав каждом столбце, но он отображает детали по строкам.

Ответы [ 3 ]

0 голосов
/ 07 июля 2019

Точка с запятой отсутствует после echo "<tr>" и должна быть echo "<tr>";

0 голосов
/ 07 июля 2019

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

Это не имеет никакого отношения к тому, что вы делаете эхо в одной строке, как подсказывает @Always Sunny! На самом деле, предоставленная им демоверсия не работает!

Но, двигаясь вперед, это может быть не изящное решение, но с ним справится:

echo "<tr>";
 foreach ($product as $i_names => $i_values) {
           echo "<td>$i_values[0]</td>";  
}
 echo "</tr>";

 echo "<tr>";
 foreach ($product as $i_names => $value) {
           echo "<td>$i_values[1]</td>";          
}
 echo "</tr>";


 echo "<tr>";
 foreach ($product as $i_names => $value) {
           echo "<td>$i_values[2]</td>";          
}
 echo "</tr>";


 echo "<tr>";
 foreach ($product as $i_names => $value) {
           echo "<td>$i_values[3]</td>";          
}
 echo "</tr>";


 echo "<tr>";
 foreach ($product as $i_names => $value) {
           echo "<td>$i_values[4]</td>";          
}
 echo "</tr>";
0 голосов
/ 07 июля 2019

У вас есть несколько ненужных конкатенации строк с двойными кавычками .Просто сделайте это в одну строку -

foreach ($product as $i_names => $i_values) {
       echo "<tr><td>$i_values[0]</td><td>$i_values[1]</td><td>$i_values[2]</td><td>$i_values[3]</td><td>$i_values[4]</td></tr>";
}

РАБОЧИЙ ДЕМО: http://main.xfiddle.com/eb798d87/foreach.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...