Pregunta:
Fecha: 30-03-2019 06:39:23
(En Español)
tengo dos arreglos que quiero comparar.
los dos arreglos contienen valores similares por ejemplo contiene los siguientes datos
arreglo1
arreglo2
estoy aplicando esto para compararlos
lo hace bien hasta que el primer a1 es diferente a2 lo que imprime es lo siguiente
desde aqui ya no hace nada
a lo que quiero llegar
esto funciona como ejemplo... pero aplicando a mi código que son consultas no funciona...
espero puedan ayudarme... Votos: 0 - Respuestas: 3 - Vistas: 13 Compartir en: Google Facebook Twitter LinkedIn Link
Comparación de Datos de dos arreglos[No resuelta]
Hola chicos... tengo un problema que no se como resolver...tengo dos arreglos que quiero comparar.
$arreglo1 = array($a1); $arreglo2 = array($a2);
los dos arreglos contienen valores similares por ejemplo contiene los siguientes datos
arreglo1
1 2 3 4 5 6 7 8 9 10
arreglo2
1 2 4 7 9 10
estoy aplicando esto para compararlos
if($arreglo1 == $arreglo2){
echo "a1";
echo "b2";
}else{
echo"";
}lo hace bien hasta que el primer a1 es diferente a2 lo que imprime es lo siguiente
1 -> 1 2 -> 2
desde aqui ya no hace nada
3 -> null ...
a lo que quiero llegar
1 -> 1 2 -> 2 3 4 -> 4 5 6 7 -> 7 8 9 -> 9 10 ->10
esto funciona como ejemplo... pero aplicando a mi código que son consultas no funciona...
$arreglo1 = array(1,2,3,4,5,6,7,8,9,10); $arreglo2 = array(1,2,4,7,9,10);
foreach($arreglo1 as $num) {
if(in_array($num,$arreglo2)) {
echo $num . "->" . $num . "<br>";
} else {
echo $num . "<br>";
}
}espero puedan ayudarme... Votos: 0 - Respuestas: 3 - Vistas: 13 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 01-04-2019 07:21:05 Hola colega, intentaste utilizar la función array_intersect la cual calcula la intersección de arrays?
Dicha función retorna el siguiente array: [0] => 1, [1] => 2, [3] => 4, [6] => 7, [8] => 9, [9] => 10
Recuerda que los arreglos se iteran desde la posición 0 (cero). Ahora bien, si lo que quieres es mantener los indices del arreglo 1 puedes utilizar algo similar:
$arreglo3 = [];
foreach ($arreglo1 as $key => $value) {
$arreglo3[$key + 1] = (in_array($value, $arreglo2)) ? $value : '';
}
- Recorres el arreglo1
- Si el valor del arreglo1 se encuentra en el arreglo2, guardas el valor del arreglo1 en el arreglo3, en la posición del arreglo1, aqui puedes emplear un operador ternario para guardar un valor vació y así mantener la misma longitud del arreglo1.
- $key + 1 es opcional y lo puedes emplear para que tu arreglo 3, inicie desde 1 y asi tengas la estructura que deseas.
Resultado:
[1] => 1
[2] => 2
[3] =>
[4] => 4
[5] =>
[6] =>
[7] => 7
[8] =>
[9] => 9
[10] => 10
Espero haber sido claro!
Saludos. Votos: 1 - Link respuesta -
Fecha: 02-04-2019 16:39:56 sort($a1);
sort($a2);
echo $a1 == $a2;
// Print 1 si son iguales Votos: 0 - Link respuesta -
Fecha: 09-04-2019 05:16:04 $array1 = array("a1" => 1, "a2" => 2,...);
$array2 = array("a1" => 1, "a2" => 5,...);
foreach($array2 as $key => $value) {
if (isset($array1) && isset($array2) && $array2[$key] != $array1[$key]) {
$guardar_datos_diferente_en_esta_variable .= $key." : ".$value." \n";
}
}
print_r($guardar_datos_diferente_en_esta_variable); Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
