Foros del Web » Programando para Internet » PHP »

Problema diferencia entre arrays

Estas en el tema de Problema diferencia entre arrays en el foro de PHP en Foros del Web. Código PHP: $xm_explode =array( "1" , "2" , "3" , "4" , "5" ); $xm_explode_2 =array( "1" , "2" , "3" ); $aa = array_unique ...
  #1 (permalink)  
Antiguo 12/03/2013, 23:25
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 4 meses
Puntos: 20
Exclamación Problema diferencia entre arrays

Código PHP:
$xm_explode=array("1","2","3","4","5");
$xm_explode_2=array("1","2","3");

$aa=array_unique(array_diff($xm_explode_2,$xm_explode));

$bb=array_unique(array_diff($xm_explode,$xm_explode_2)); 
Con esto intento obtener los valores en común y no en común pero no me sale , los valores en común salen pero los no en común es lo que me interesa sacar , el caso es que con esto quiero montar un select múltiple , y si hay valores en común los marcará como seleccionados , pero el problema es qeu solo me salgna los qeu no están en común

Cita:
<select multiple>

<?php
foreach ($aa as $aaa)
{

print "<option selected>".$aaa."</option>";


/// El problema es sacar los comunes y no comunes ///
}
?>

</select>


Agradecido por la ayuda de antemano , un saludo a todos
  #2 (permalink)  
Antiguo 13/03/2013, 00:25
Avatar de JorM  
Fecha de Ingreso: diciembre-2012
Ubicación: Argentina
Mensajes: 53
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Problema diferencia entre arrays

Aca te dejo un codigo que arme, que selecciona los comunes y no comunes y los muestra.

Código PHP:
Ver original
  1. <?php
  2. $xm_explode     = array("1","2","3","4","5"); //arr1
  3. $xm_explode_2   = array("1","2","3"); //arr2
  4.  
  5. //Cantidad Valores
  6. $arr1 = count($xm_explode)-1;
  7. $arr2 = count($xm_explode_2)-1;
  8.  
  9. //Donde se guardaran los valores comunes y no comunes
  10. $arrComunes = array();
  11. $arrNocomunes = array();
  12.  
  13. //Separacion de valores en los casos que uno de los dos array sea mayor que el otro
  14. if($arr1 <= $arr2){
  15.     $i = 0;
  16.     foreach ($xm_explode as $value){
  17.         if($value == $xm_explode_2[$i]){
  18.             $arrComunes[] = $value;
  19.         }else{
  20.             $arrNocomunes[] = $value;
  21.             $arrNocomunes[] = $xm_explode_2[$i];
  22.         }
  23.         $i++;
  24.     }
  25.     if($i < $arr2){
  26.         while($i <= $arr2){
  27.             $arrNocomunes[] = $xm_explode_2[$i];
  28.             $i++;  
  29.         }
  30.     }
  31. }else{
  32.     $i = 0;
  33.     foreach ($xm_explode_2 as $value){
  34.         if($value == $xm_explode[$i]){
  35.             $arrComunes[] = $value;
  36.         }else{
  37.             $arrNocomunes[] = $value;
  38.             $arrNocomunes[] = $$xm_explode[$i];
  39.         }
  40.         $i++;
  41.     }
  42.     if($i < $arr1){
  43.         while($i <= $arr1){
  44.             $arrNocomunes[] = $xm_explode[$i];
  45.             $i++;  
  46.         }
  47.     }
  48. }
  49.  
  50. //Mostrar Resultados
  51. echo 'Array Comunes';
  52. echo '<pre><br>';
  53. var_dump($arrComunes);
  54. echo '</pre><br>';
  55.  
  56. echo 'Array No Comunes';
  57. echo '<pre><br>';
  58. var_dump($arrNocomunes);
  59. echo '</pre><br>';
  60. ?>

El código tiene una particularidad, que supongamos que tenes los siguientes valores

Array 1 = 1 , 2 , 3 , 4 , 5 , 6 , 7
Array 2 = 1 , 2 , 3 , 5 , 4 , 6 , 7

Te va a mostrar:

Valores Comunes: 1,2,3,6,7
Valores no Comunes: 4,5,5,4

Porque sucede esto?

Porque el script los va chequeando por PARES, tendrías que pensar alguna forma de modificarlo para que no suceda eso.

Te doy la idea, intenta resolver dicha cuestión. lo dejo en tus manos.
De ultima si no te sale, decime y veo como lo podemos solucionar.

Saludo!
  #3 (permalink)  
Antiguo 13/03/2013, 00:27
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 4 meses
Puntos: 20
Respuesta: Problema diferencia entre arrays

Voy a ponerme a ello y te comento , muchas gracias amigo :)
  #4 (permalink)  
Antiguo 13/03/2013, 01:53
Avatar de JorM  
Fecha de Ingreso: diciembre-2012
Ubicación: Argentina
Mensajes: 53
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Problema diferencia entre arrays

La verdad me quedo la intriga, de como hacerlo, así que intente y ya lo logre. Cuando quieras avísame y lo publico, yo por si queres intentar hacerlo vos.

Saludo

Etiquetas: arrays, diferencia, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:02.