PHP массив в таблицу с более чем двумя столбцами

#php #html #css

#php #HTML #css

Вопрос:

У меня есть небольшой код, который объединяет два массива в таблицу с 2 столбцами. Это работает. Но теперь у меня есть новый массив со значениями из $file3 . Я понимаю, как создать таблицу с двумя столбцами, но как я могу добавить третий столбец с содержимым $file3 ?

 <?php
    $file1 = "c:/presencetool/ramfile1.txt";
    $file2 = "c:/presencetool/ramfile2.txt";
    $file3 = "c:/presencetool/ramfile3.txt"; //new file
    if(file_exists($file1) amp;amp; file_exists($file2))
    {
        $line1 = file($file1, FILE_IGNORE_NEW_LINES);
        $line2 = file($file2, FILE_IGNORE_NEW_LINES);
        $line3 = file($file3, FILE_IGNORE_NEW_LINES); //new array
        $combine = array_combine($line1, $line2); //I want to also combine $line3 here

        $html = '<table align="center">';
        $html .= '<tr><td width="350px";></td><td></td></tr>';
        $i = 1;
        foreach ($combine as $key => $value):
        $html .= '<tr class="'.$value.'">';
        $html .= '<td font-size:"90pt">'.$key.'</td>';
        $html .= '<td font-size:"90pt">'.$value.'</td>';
        //here something like $html .= '<td font-size:"90pt">'.$value2.'</td>';
        $html .= '</tr>';
        $i  ;
        endforeach;
        $html .= '</table>';

        echo $html;
    }
  

В $file1 , $file2 и $file3 указаны имена, адреса и электронные письма некоторых пользователей.(одно значение в строке)

Комментарии:

1. Вы должны создать 2D массив, а не массив ключ-значение.

2. @MrLister потому что массив ключ-значение работает только с 2 связанными значениями, верно? Я думал об этом, но я не был совсем уверен, как создать другой тип массива. Спасибо! Я проведу некоторое исследование о 2D-массивах.

Ответ №1:

если ваш массив выглядит следующим образом :

 $line[] = ['name' => 'name1','email' => 'email@mail.com']; 
$line[] = ['name' => 'name2','email' => 'email2@mail.com']; 
$line[] = ['name' => 'name3','email' => 'email3@mail.com'];
  

Тогда попробуйте следующее, надеюсь, это поможет вам

 $html = '<table align="center" border="1" width="50%">';
$html .= '<tr><th>Name</th><th>Email</th><th>Address</th></tr>';
for($i=0;$i<count($line1);$i  ){
    $html .= '<tr class="'.$line1[$i].'">'; 
    $html .= '<td font-size:"90pt">'.$line1[$i].'</td>';
    $html .= '<td font-size:"90pt">'.$line2[$i].'</td>';
    $html .= '<td font-size:"90pt">'.$line3[$i].'</td>';
    $html .= '</tr>';
}
$html .= '</table>';

echo $html;
  

Комментарии:

1. На самом деле нет, $ line1 заполнен именами, $ line2 заполнен адресами, а $ line 3 заполнен адресами электронной почты

2. я внес некоторые изменения в приведенный выше код, пожалуйста, проверьте, что приведенный выше результат отражает вашу реальную потребность @buttercup