PHP - Como iterar dos listas en dos Foreach sin que se repitan los registros

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como iterar dos listas en dos Foreach sin que se repitan los registros

Publicado por Federico (8 intervenciones) el 14/09/2018 00:49:16
Buenas tardes amigos, quiero iterar dos listas, la primera lista contiene los valores 0 y 1, y la segunda lista contiene los valores 0, 2 y 3. El detalle es que en la lista que me retorna me duplica los registros de la siquiente forma:
0
2
3
1
0
2
3

Yo quiero que no me repita los registros, osea deseo obtener lo siguiente:

0
1
2
3

Les agradecería sus comentarios!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
rec1=lista{0,1};
rec2=lista{0,2,3};
$lista=[];
$contador=0;
 
foreach ($rec1 as $key1 => $value1)
{
$lista[$contador]= $value1;
$contador++;
 
foreach ($rec2 as $key2 => $value2)
{
 
if($value1['id_empleado'] != $value2['id_empleado'])
{
$lista[$contador]= $value2;
 
} else{
 
}
$contador++;
 
}
}
return $lista;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 25
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como iterar dos listas en dos Foreach sin que se repitan los registros

Publicado por JESUS DAVID ARIZA ROYETH (5 intervenciones) el 14/09/2018 02:26:40
Puedes hacerlo de forma mas automática con array_unique

1
2
3
4
5
6
$rec1=array(0,1);
$rec2=array(0,2,3);
$todos=array_unique(array_merge($rec1,$rec2));
foreach ($todos as $valor) {
    echo $valor ."<br>";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como iterar dos listas en dos Foreach sin que se repitan los registros

Publicado por Federico (8 intervenciones) el 14/09/2018 05:38:55
Buenas noches amigo, ya prove de la forma que comentas pero, solo me trae el 0 que es el id que tienen en comun ambas listas, lo que necesito es traer todos los ides de ambas listas pero sin que se me dupliquen. Gracias por tu aportacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 25
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como iterar dos listas en dos Foreach sin que se repitan los registros

Publicado por JESUS DAVID ARIZA ROYETH (5 intervenciones) el 14/09/2018 20:42:44
con el código que te adjunté me devuelve la unión no repetida :

1
2
3
4
5
6
7
8
<?php
$rec1=array(0,1);
$rec2=array(0,2,3);
$todos=array_unique(array_merge($rec1,$rec2));
foreach ($todos as $valor) {
    echo $valor ."<br>";
}
?>

me devuelve estos valores :

0
1
2
3



imag
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como iterar dos listas en dos Foreach sin que se repitan los registros

Publicado por Federico (8 intervenciones) el 14/09/2018 20:54:05
Ok amigo ya me funciono, te agradezco tu respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como iterar dos listas en dos Foreach sin que se repitan los registros

Publicado por Federico (8 intervenciones) el 14/09/2018 20:58:06
Les dejo esta solucion que tambien me funciono:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public function responsableDelTemaParaFiltro()
{
    try
    {
       $rec1=array(0,1);
       $rec2=array(0,2,3);
        $resultado = array_merge($rec1, $rec2);
        $lista= array_unique($resultado, SORT_REGULAR);
 
        return $lista;
    } catch (Exception $ex)
    {
        throw $ex;
        return -1;
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar