上传 4 张图片后添加 tr


Add tr after 4 uploaded images

我想要一个上传图像的图库,每个 tr 显示 4 张图像。某处需要一个循环,但我无法让它工作。 当 tr 中有 4 张图像时,它需要自动添加 tr。

<?php
    $folder = 'uploads/';
    $filetype = '*.*';
    $files = glob($folder.$filetype);
    $count = count($files);
    $sortedArray = array();
    for ($i = 0; $i < $count; $i++) {
        $sortedArray[date ('YmdHis', filemtime($files[$i]))] = $files[$i];
    }
    krsort($sortedArray);
    echo '<table>';
    foreach ($sortedArray as &$filename) {
        echo '<td align="center">';
        echo '<a name="'.$filename.'" href="#'.$filename.'"><img src="'.$filename.'" /></a>';
        echo 'Bestand naam: ' . substr($filename,strlen($folder),strpos($filename, '.')-strlen($folder));
        echo '</td>';
    }
    echo '</table>';
?>

让一个计数器,比如说$i沿着你的 foreach 循环运行,每次循环运行时都会增加一个。使用 if ($i % 4 ==0) 检查"每四个元素"

在循环中使用计数器。它应该看起来像这样:

echo '<table>';
$ctr = 0;
foreach ($sortedArray as &$filename) {
    echo ($ctr % 4 == 0) ? "<tr>" : "";
    echo '<td align="center">';
    echo '<a name="'.$filename.'" href="#'.$filename.'"><img src="'.$filename.'" /></a>';
    echo 'Bestand naam: ' . substr($filename,strlen($folder),strpos($filename, '.')-strlen($folder));
    echo '</td>';
    $ctr++;
    echo ($ctr % 4 == 0) ? "</tr>" : "";
}
echo '</table>';
<?php
$folder = 'uploads/';
$filetype = '*.*';
$files = glob($folder . $filetype);
$count = count($files);
$sortedArray = array();
$i = 0;
krsort($sortedArray);
echo '<table><tr>';
foreach($sortedArray as & $filename)
{
    echo '<td align="center">';
    echo '<a name="' . $filename . '" href="#' . $filename . '"><img src="' . $filename . '"/> </a>';
    echo 'Bestand naam: ' . substr($filename, strlen($folder) , strpos($filename, '.') - strlen($folder));
    echo '</td>';
    if ($i % 4 == 0)
    {
        echo '</tr><tr>';
    }
    $i++;
}
echo '</tr></table>';
?>