2014-04-05 100 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>'; 
?>