Ассоциативный массив и отображение результатов с таблицей операторов foreach - PullRequest
0 голосов
/ 28 мая 2020

Это мой код, и он отлично работает, но когда я показываю оператор foreach, он не работает!

$people= array(

array(
    "name" => "Jennifer Kimbers",
    "email" => "abc@gmail.com",
    "city" => "Seattle",
    "state" => "Washington"),

array(
    "name" => "Rodney Hutchers",
    "email" => "def@gmail.com",
    "city" => "Los Angeles",
    "state" => "California"),

);


    echo "<table>";
    echo "<th>FullName</th>";
    echo "<th>Email</th>";
    echo "<th>City</th>";
    echo "<th>State</th>";

foreach ($people as $person)
{
    foreach ($person as $key=>$values)
    {
    echo "<tr>";
    echo "<td>$values</td>";
    echo "</tr>";

    }
}

Мой вопрос в том, как с помощью оператора foreach я могу отображать результаты, организованные, например: <th>Fullname<th> и ниже только имя Jennifer Kimbers и ниже Rodney Hutchers, после этого рядом с <th>Email<th> и ниже abc@gmail.com и ниже def@gmail.com ..... и т. Д. Я искал этот форум, или inte rnet ничего не нашел Спасибо за ваше время

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Просто для полноты, нет необходимости echo все, когда вы смешиваете php с HTML.

    //not sure what is above this, so will just end it here.
    ?>
    <table>
      <tr>
        <th>FullName</th>
        <th>Email</th>
        <th>City</th>
        <th>State</th>
      </tr>

    <?php foreach ($people as $person) : ?>
      <tr>    
        <?php foreach ($person as $key => $values) : ?>
            <td><?php echo $values; ?></td>
        <?php endforeach; ?>
      </tr>
    <?php endforeach; ?>
    </table>

Создайте полный и действительный код. Не упускайте <tr></tr>, решите проблему CSS другим способом.

======

Альтернативный способ решения проблемы. Код может выглядеть немного сложнее, но его легче поддерживать. Например, если вы хотите добавить почтовый индекс, все, что вам нужно сделать, это изменить массив $fields. Все остальное адаптируется.

$fields = ['name','email','city','state'];
?>
    <table>
      <tr>
        <?php foreach($fields as $field): ?>
          <th><?php echo ucfirst($field); ?></th>
        <?php endforeach; ?>
      </tr>

   <?php  foreach ($people as $person) : ?> 
      <tr>    
         <?php foreach ($fields as $field) :  ?>
            <td> <?php echo $person[$field]; ?> </td>
         <?php endforeach; ?>
      </tr>
     <?php endforeach; ?> 
    </table>
0 голосов
/ 28 мая 2020

Строки таблицы должны быть в первом l oop.

echo "<table>";
echo "<th>FullName</th>";
echo "<th>Email</th>";
echo "<th>City</th>";
echo "<th>State</th>";

foreach ($people as $person) {
    echo "<tr>";    

    foreach ($person as $key=>$values) {
        echo "<td>$values</td>";
    }

    echo "</tr>";
}

echo "</table>";
...