Cita:  
					Iniciado por maycolalvarez  
  al final obtienes lo que necesitas 

   mira lo hice como mencionaste pero no se logra construir el array correctamente
te muestro el code.  
 Código PHP:
    if(file_exists("tmp/".$_GET['products_id']."conlogo.zip")) {  
}else {
include("createzipconlogo.php");
$imagen1 = "images/". $product_info['products_image_med'];
$imagen2 = "images/". $product_info['products_image_xl_1'];
$imagen3 = "images/". $product_info['products_image_xl_2'];
$imagen4 = "images/". $product_info['products_image_xl_3'];
$imagen5 = "images/". $product_info['products_image_xl_4'];
$imagen6 = "images/". $product_info['products_image_xl_5'];
$imagen7 = "images/". $product_info['products_image_xl_6'];
 
//borrando los espacios
$imagen1mod=str_replace(' ',"%20",$imagen1);
$imagen2mod=str_replace(' ',"%20",$imagen2);
$imagen3mod=str_replace(' ',"%20",$imagen3);
$imagen4mod=str_replace(' ',"%20",$imagen4);
$imagen5mod=str_replace(' ',"%20",$imagen5);
$imagen6mod=str_replace(' ',"%20",$imagen6);
$imagen7mod=str_replace(' ',"%20",$imagen7);
 
$contlogo=array(
"1.jpg" => $imagen1mod,
"2.jpg" => $imagen2mod, 
"3.jpg" => $imagen3mod,
"4.jpg" => $imagen4mod,
"5.jpg" => $imagen5mod, 
"6.jpg" => $imagen6mod,
"7.jpg" => $imagen7mod,
);
 
foreach($contlogo as $key => $value){
    if(file_exists($value)){
        $contlogo[$key] = file_get_contents($value);
    }else{
        unset($contlogo[$key]);
    }
}
//construyendo el zip con solo los archivos que existen
createziplogo($contlogo,"tmp/".$_GET["products_id"]."conlogo.zip") or die("Error: al construir el ZIP.");
} 
    
  el createzipconlogo.php 
 Código PHP:
    function createziplogo($struct,$namezip=0)
{     $ZipData = array(); 
    $Dircont = array(); 
    $DirFile = array();
    $offseto = 0;        
    while(list($file,$data)=each($struct))
    {    $file= str_replace("\\", "/", $file);  
        $dir=explode("/",$file);
        for($i=0; $i<sizeof($dir); $i++)if($dir[$i]=="")unset($dir[$i]);                    
        $num=count($dir); //Total de niveles
        $ele=0;            //Nivel actual
        $dirname="";      //Nombre archivo o directorio
        while(list($idx,$val)=each($dir))
        {    $ty=(++$ele)==$num?true:false;
            $ty=trim($data)!=""?$ty:false;//Compruebar si el ultimo elemento es directorio o archivo
            $dirname.=$val.($ty?"":"/");
            if(isset($DirFile[$dirname]))continue; else $DirFile[$dirname]=true;            
            $gzdata="";                
            if($ty)
            {    $unziplen=strlen($data);  
                $czip=crc32($data);  
                $gzdata=gzcompress($data);  
                $gzdata=substr(substr($gzdata,0,strlen($gzdata)-4),2); 
                $cziplen=strlen($gzdata);  
            }                        
            $ZipData[]="\x50\x4b\x03\x04".($ty?"\x14":"\x0a")."\x00\x00\x00".($ty?"\x08":"\x00")."\x00\x00\x00\x00\x00".
                       pack("V",$ty?$czip:0).pack("V",$ty?$cziplen:0).pack("V",$ty?$unziplen:0).pack("v",strlen($dirname)). 
                       pack("v",0).$dirname.$gzdata.pack("V",$ty?$czip:0).pack("V",$ty?$cziplen:0).pack("V",$ty?$unziplen:0);
            $Dircont[]="\x50\x4b\x01\x02\x00\x00".($ty?"\x14":"\x0a")."\x00\x00\x00".($ty?"\x08":"\x00")."\x00\x00\x00\x00\x00".
                       pack("V",$ty?$czip:0).pack("V",$ty?$cziplen:0).pack("V",$ty?$unziplen:0).pack("v",strlen($dirname)). 
                       pack("v", 0 ).pack("v",0).pack("v",0).pack("v",0).pack("V",$ty?32:16).pack("V",$offseto).$dirname;          
            $offseto=strlen(implode("",$ZipData));            
        }//Fin While dir        
    }//Fin While archivos
    $data = implode("",$ZipData);  
    $cdir = implode("",$Dircont);      
    $data=$data.$cdir."\x50\x4b\x05\x06\x00\x00\x00\x00".pack("v",sizeof($Dircont)).pack("v",sizeof($Dircont)).pack("V",strlen($cdir)).pack("V",strlen($data))."\x00\x00";
    if($namezip)//Construir el archivo
    {    if(($fp=fopen($namezip,"wb")))
           {    fwrite($fp,$data);
            fclose ($fp);
            return true;
        }else return false;
    }else return $data;       
}