2014-04-05 102 views
1

我想要一张上传图片的图库,每张图片显示4张图片。 需要有一个循环的地方,但我不能得到它的工作。 当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>'; 

?> 

回答

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>'; 
+0

刚刚开始,这不是它。我得到第一行1然后3再1 1 – Brutalized

+0

我注意到,我把计数器增量放在错误的地方,这就是为什么。我已经更新了我的答案,请现在就试用,现在看起来没问题。 [这是我的测试。](http://ideone.com/WlREXl) –

+0

AAH伟大的工程! ty男人,节省了我的时间分配 – Brutalized

1

让一个计数器,比如说我跟你的foreach循环一起运行,每循环运行一个循环就打一个循环。使用if($ i%4 == 0)检查“每第四个元素”

+0

可你莫比显示它在我的代码。即时从PHP – Brutalized

0
<?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>'; 
?>