Ver Mensaje Individual
  #7 (permalink)  
Antiguo 24/11/2010, 20:23
Avatar de xcorpion
xcorpion
 
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 20 años, 6 meses
Puntos: 4
Respuesta: Agrupando datos en PHP

Bueno creo que lo logre, aun que tal vez se puede optimizar más remplazando eregi_replace por preg_replace, les dejo el código por si algún día lo necesitan:

Código PHP:
        foreach ($arrayres as $xcompare){
            list($
$imgsname,$imgdname,$percent) = explode(";",$xcompare);
            if(
$percent 90){
                if(!isset(
$lastgroup)){
                    
$lastgroup="$imgsname;$imgdname";
                }else{
                    if(
eregi("($imgsname|$imgdname)",$lastgroup)){
                        
$lastgroup .= ";$imgsname;$imgdname";
                    }else{
                        
$grupos[]=$lastgroup;
                        
$lastgroup="$imgsname;$imgdname";
                    }
                }
            }
        }
        
$x=0;
        while(
$grupos[$x]){
            
$og=$grupos[$x];
            if(
$og==1){
                
$x++;
                continue;
            }

            
$y=$x+1;
            while(
$grupos[$y]){
                
$dg=$grupos[$y];
                if(
$dg==1){
                    
$y++;
                    continue;
                }
                
$og_regex eregi_replace(";","|",$og);
                if(
eregi("($og_regex)",$dg)){
                    
$grupos[$x] .= ";"$grupos[$y];
                    
$grupos[$y] = 1;
                }
                
$y++;
            }
            
$x++;
        }
        
$i=0;
        foreach(
$grupos as $xgrupo){
            if(
$xgrupo==1) continue;
            
$lgrupo explode(";",$xgrupo);
            
$agrupo array_unique($lgrupo);
            
$sgrupo implode(";",$agrupo);
            echo 
"Grupo " $i++ . ": $sgrupo<br>";
            foreach(
$agrupo as $smatch){
                echo 
"<img src='folder_img/$id/$smatch' width='150'>";
            }
            echo 
"<br>";
        }