no need to have nested foreach.
use this:
<?php
$images = 'screenshots/';
$scanned_images = array_diff(scandir($images), array('..', '.'));
$zips = 'download/';
$scanned_zips = array_diff(scandir($zips), array('..', '.'));
foreach ($scanned_images as $value)
{
$name = substr($value, 0, strrpos($value, '.'));
$pos = array_search($name.'.zip', $scanned_zips);
if($pos != null){
echo '<div class="portfolioItem">';
echo '<a href="'.$images.$value.'" class="zoom img" title="'.$value.'" rel="portfolio">';
echo '<img src="'.$images.$value.'" class="portfolio-image" alt="'.$value.'" />';
echo '</a>';
echo '<div class="portfolioDescription">';
echo '<h4>Download:'.$scanned_zips[$pos].'</h4>';
echo '<p><a href="'.$zips.$scanned_zips[$pos].'">Click here to download</a></p>';
echo '</div>';
echo '</div>';
}
}