Prova qualcosa tipo:

Codice PHP:
$dir_name="wallpaper";
$dir=opendir($dir_name);
$files = array(); // l'array bisogna crearlo!

echo "<table border=\"0\" cellspacing=\"10\"><tr><td>1</td><td>2</td><td>3</td></tr>"

$count 0;
while (
false !== ($file readdir($dir)))
{
 if (
$file != "." && $file != ".."// elimina i . e ..
 
{
  
$files[$count] = $file// sul array si assegna con l'index!
  
$count++; // ottieni un valore pulito senza i . e ..
 
}

closedir($dir);

$IMAGE_FOR_ROW 3;

for(
$row=0row ceil($count/$IMAGE_FOR_ROW); $row++)
{
 echo 
"<tr>";
 
 for(
$column 0$column $IMAGE_FOR_ROW$column++)
 {
  
$current_image_index = ($row $IMAGE_FOR_ROW) + $column// identifica l'index del immagine corrente
  
$image_name $files[$current_image_index];
  echo 
"<td>";
  echo 
"<a href=\"".$dir_name."/".$image_name."\"><img style=\"width:100px; height:80px\" style=\"border:0;\" src=\"".$dir_name."/".$image_name."\" alt=\"".$image_name."\" /></a>";
  echo 
"</td>";
 }
  echo 
"</tr>"
}
echo 
"</table>"