У меня есть файл с 20 фотографиями художников страны и текстовый файл со своими веб-сайтами. Я пытаюсь отобразить эти данные в таблице столбцов 4 строки 5, используя PHP.
Я пытаюсь использовать цикл foreach, который выполняет итерацию для каждых 5 элементов в массиве (для загрузки каждой строки по одному)
foreach(array_chunk($CountryArtists, 5, true) as $Value) { <table> <tr><td> $CountryArtists[$Value] $ArtistImages[$Value]</td> <td> $CountryArtists[$Value] $ArtistImages[$Value]</td> <td> $CountryArtists[$Value] $ArtistImages[$Value]</td> <td> $CountryArtists[$Value] $ArtistImages[$Value]</td> <td> $CountryArtists[$Value] $ArtistImages[$Value]</td></tr> </table>
Я пытался выяснить, как загрузить изображения в массив, но не повезло. Я начинаю думать, что я должен поместить ссылку на расположение файла в массиве, но я не уверен.
$colsToDisplay = 5; $CountryArtists = array("C:\Users\THEFOLDER\images"); $ArtistImages = array("AJackson", "BShelton", "CUnderwood", "DBentley", "DLJones", "DRucker", "JAldean", "JCash", "JJohnson", "JStrait", "KChesney", "LAntebellum", "LDavis", "LRimes", "MLambert", "MMcBride", RTravis", "STwain", TKeith", TMcgraw"); $filename = "C:\Users\THEFOLDER\images";
Я относительно новичок в PHP, и мне просто нужно знать, как загрузить мои изображения и как правильно отобразить эту таблицу.
РЕДАКТИРОВАТЬ:
Я добавил эхо в строки таблицы, но он просто показывает эхо в выходе браузера:
" echo " $CountryArtists[$Value] $ArtistImages[$Value]" echo " .$CountryArtists[$Value]. $ArtistImages[$Value]" echo " .$CountryArtists[$Value]. $ArtistImages[$Value]" echo " .$CountryArtists[$Value]. $ArtistImages[$Value]" echo " .$CountryArtists[$Value]. $ArtistImages[$Value]" echo "" } ?>
Теперь мой код выглядит так:
foreach(array_chunk($CountryArtists, 5, true) as $Value) { echo "<table>" echo "<tr><td> $CountryArtists[$Value] $ArtistImages[$Value]</td>" echo "<td> .$CountryArtists[$Value]. $ArtistImages[$Value]</td>" echo "<td> .$CountryArtists[$Value]. $ArtistImages[$Value]</td>" echo "<td> .$CountryArtists[$Value]. $ArtistImages[$Value]</td>" echo "<td> .$CountryArtists[$Value]. $ArtistImages[$Value]</td></tr>" echo "</table>" }
Я чувствую, что я плохо себя чувствую, был бы так благодарен, если бы это указывало мне.
ПОЛНЫЙ ФАЙЛ
<!DOCTYPE HTML> <html> <body> <?php $ArtistImages = array("AJackson", "BShelton", "CUnderwood", "DBentley", "DLJones", "DRucker", "JAldean", "JCash", "JJohnson", "JStrait", "KChesney", "LAntebellum", "LDavis", "LRimes", "MLambert", "MMcBride", "RTravis", "STwain", "TKeith", "TMcgraw"); $count = count($ArtistImages); $cols = 6; $div = (int) $count / (int)$cols; $diff = ceil($div); echo $fin = $cols * $diff; $a = 1; echo '<table>'; for($i = 0; $i < $fin; $i++) { if($a == 1) echo "\t<tr>".PHP_EOL; $artist = (!empty($ArtistImages[$i]))? $ArtistImages[$i]: ""; echo "\t\t".'<td>'.$artist.'</td>'.PHP_EOL; if($a == $cols) { echo "\t</tr>".PHP_EOL; $a=0; } $a++; } echo '</table>'; ?> </body> </html>
Я думаю, вы можете искать что-то похожее на этот алгоритм. Он добавляет строку каждые 5 значений. Вы захотите сделать делитель, чтобы он сделал ceil()
чтобы добавить все необходимые пустые ячейки. Вы можете сделать это foreach, если вы делаете <ul>
и <li>
и используете CSS, чтобы они отображались как таблица. Тогда вам не нужно вычислять лишние ячейки.
$i = 1; echo '<table>'; foreach($array as $value) { if($i == 1) echo "<tr>"; echo '<td>'.$value.'</td>'; if($i == 5) { echo "</tr>"; $i=0; } $i++; } echo '</table>';
РЕДАКТИРОВАТЬ:
Вот более практичная версия, основанная на вашем:
$ArtistImages = array("AJackson", "BShelton", "CUnderwood", "DBentley", "DLJones", "DRucker", "JAldean", "JCash", "JJohnson", "JStrait", "KChesney", "LAntebellum", "LDavis", "LRimes", "MLambert", "MMcBride", "RTravis", "STwain", "TKeith", "TMcgraw"); // Count total artists in array $count = count($ArtistImages); // Choose how many to display per row $cols = 6; // Divide the total by the columns $div = (int) $count / (int)$cols; // Round up (incase the number will produce empty cells $diff = ceil($div); // Mulitply the final numbers $fin = $cols * $diff; // Create an autoincrementer to keep track of next rows $a = 1; echo '<table>'.PHP_EOL; for($i = 0; $i < $fin; $i++) { if($a == 1) echo "\t<tr>".PHP_EOL; // You need to see if this artist is populated. If not, make empty // If left without this it will have a warning saying not exists $artist = (!empty($ArtistImages[$i]))? $ArtistImages[$i]: ""; echo "\t\t".'<td>'.$artist.'</td>'.PHP_EOL; if($a == $cols) { echo "\t</tr>".PHP_EOL; $a=0; } $a++; } echo '</table>';
В php-файле вам нужно эхо-данные, которые вы хотите. Однако если вы в php-файле, вы можете закрыть php, как это. ? > И напишите html-код. Когда вы хотите отображать атрибуты php, вам снова нужно открыть php, как это: и продолжить, как это … Php fcan только вернуть строку или json-данные. Сообщите мне, если это сработает для вас ….