Foros del Web » Programando para Internet » PHP »

array_diff NO FUNCIONA

Estas en el tema de array_diff NO FUNCIONA en el foro de PHP en Foros del Web. Hola que tal, tengo un problema con la funcion array_diff... Cuando quiero comprar 2 arrays los cuales tiene datos de 2 consultas de base de ...
  #1 (permalink)  
Antiguo 11/01/2011, 21:46
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 9 años, 7 meses
Puntos: 9
Exclamación array_diff NO FUNCIONA

Hola que tal, tengo un problema con la funcion array_diff...

Cuando quiero comprar 2 arrays los cuales tiene datos de 2 consultas de base de datos..

y colocando: print_r(array_diff($dsocios, $sociost));

lo unico que muestra es:

Array ( )

...

solo funciona si tu colocas los datos manualmente:

<?php
$array1 = array ("a" => "verde", "b" => "negro", "c" => "azul", "rojo");
$array2 = array ("a" => "verde", "amarillo", "rojo");
$result = array_diff_assoc ($array1, $array2);

/* El resultado es:
Array
(
[b] => negro
[c] => azul
[0] => rojo
)
*/


o

<?php

$a = array('1','2','3','4','5');
$b = array('1','a','b','c','d','e');
$c = array('2','f','g','h','i','j');

print_r(array_diff($a, $b, $c));

?>

Array
(
[2] => 3
[3] => 4
[4] => 5
)


como hago para jungar 2 arrays datos almacenados ?
  #2 (permalink)  
Antiguo 12/01/2011, 05:11
Avatar de Nazari  
Fecha de Ingreso: febrero-2010
Ubicación: Canarias - Tenerife
Mensajes: 62
Antigüedad: 10 años, 3 meses
Puntos: 7
Respuesta: array_diff NO FUNCIONA

Buenas, el caso es que habria que ver que arrays estas introduciendo, porque all usar array_diff solo se tiene en cuenta los valores, por lo tanto las keys no las compara, pero al usar array_diff_assoc compara tanto keys como valor. Si quieres que $dsocios y $sociost sea comparado teniendo en cuenta keys y value, prueba con array_diff_assoc.

Un Saludo
__________________
Nazarí González
http://www.nazariglez.com - @Nazariglez
  #3 (permalink)  
Antiguo 12/01/2011, 06:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 9 años, 7 meses
Puntos: 9
Respuesta: array_diff NO FUNCIONA

Cita:
Iniciado por Nazari Ver Mensaje
Buenas, el caso es que habria que ver que arrays estas introduciendo, porque all usar array_diff solo se tiene en cuenta los valores, por lo tanto las keys no las compara, pero al usar array_diff_assoc compara tanto keys como valor. Si quieres que $dsocios y $sociost sea comparado teniendo en cuenta keys y value, prueba con array_diff_assoc.

Un Saludo
Hola que tal un saludo mañanero desde mexico..!!

Ya lo probe anteriormente y ahora nuevamente.. con

print_r(array_diff_assoc($dsocios, $sociost));

pero lo mismo:

Array ( )

:S creo que php esta vez a fallado :( jeje
  #4 (permalink)  
Antiguo 12/01/2011, 06:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 9 años, 7 meses
Puntos: 9
Respuesta: array_diff NO FUNCIONA

Ya probe con:

array_merge
array_intersect_assoc
array_combine

en los 3 me muestran solo 1 elemento repetido de 4 que hay.. que creen que sea :S ,, al menos que estas funciones acorten el o los arrays .. mmm lo checare

Última edición por marco64yes; 12/01/2011 a las 06:59
  #5 (permalink)  
Antiguo 12/01/2011, 07:09
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 9 años, 7 meses
Puntos: 9
Respuesta: array_diff NO FUNCIONA

Jajajja ya quedo, si funciono con: array_diff_assoc tenia razon Nazari ... aparte cheque que coloque mal una variable le puse $cont = cont +1 ... ni le puse el $ ,.. siempre daba 1 jajaj

y luego el $i++ lo puse fuera del while no dentro... asi que los 2 arrays no tenian nada jajaja

saludos ! y no programen de noche si tienen sueño jeje
  #6 (permalink)  
Antiguo 12/01/2011, 07:50
Avatar de Nazari  
Fecha de Ingreso: febrero-2010
Ubicación: Canarias - Tenerife
Mensajes: 62
Antigüedad: 10 años, 3 meses
Puntos: 7
Respuesta: array_diff NO FUNCIONA

Me alegro de que te haya servido, lo mas comun es que los problemas sean pequeños fallos nuestros jeje

Un Saludo
__________________
Nazarí González
http://www.nazariglez.com - @Nazariglez

Etiquetas: Ninguno
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 13:38.