Ver Mensaje Individual
  #12 (permalink)  
Antiguo 10/11/2008, 11:58
Avatar de Deschamps
Deschamps
 
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: diferencia en arrays

Cita:
Iniciado por masterojitos Ver Mensaje
esta es tu solucion:

Código PHP:
foreach($uno as $v){
  foreach(
$dos as $k){
    if(
$k!=$v)$tres[]=$k;break;
  }

Eso no funciona, masterojitos.

Haces un producto cartesiano que lo que va a generar es un montón de entradas duplicadas en el tercer array, cada vez que un elemento del primer array sea distinto a otro del segundo. Basta ejecutarlo para verlo. Para muestra:

Código PHP:
    $a = array( "1""b""c""d" );
    
$b = array( 1"b""d" );
    
    foreach( 
$a as $uno )
        foreach( 
$b as $otro )
            if( 
$uno != $otro $c[]=$uno;
        
    
print_r($c); 
Y su resultado:

Código:
Array
(
    [0] => 1
    [1] => 1
    [2] => b
    [3] => b
    [4] => c
    [5] => c
    [6] => c
    [7] => d
    [8] => d
)
Si por alguna razón no quiere usar array_diff, como ya ha sugerido, y lo quiere implementar "manualmente", entonces un esquema podría ser éste:

Código PHP:
    foreach( $a as $uno )
        if( !
in_array($uno$b) ) $d[]=$uno
Aunque faltaría también comprobar que no son del mismo tipo, porque en este caso está aceptando que 1 (entero) es igual a "1" (string).

Un saludo.