PHP - combinar Array asociativos

 
Vista:

combinar Array asociativos

Publicado por diego (8 intervenciones) el 20/02/2020 15:35:04
Hola Buenos Dias , tengo el siguiente problema que no puedo descubrir la solucion.

tengo 2 array asociativos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$datos = array('id' => 10 , 'Legajo' => '15', 'Apellido' => 'mm');
for ($i=1; $i<= 8 ; $i++) {
    		$elementos[] = array($i => array('id' => '1', 'text'=>'Correcto') );
}
$data[] = array_merge($datos, $elementos);
echo json_encode($data);
 
/*   Resultado
[
	{"id":10,"Legajo":"15","Apellido":"mm",
			"0":{"1":{"id":"1","text":"Correcto"}},
			"1":{"2":{"id":"1","text":"Correcto"}},
			"2":{"3":{"id":"1","text":"Correcto"}},
			"3":{"4":{"id":"1","text":"Correcto"}},
			"4":{"5":{"id":"1","text":"Correcto"}},
			"5":{"6":{"id":"1","text":"Correcto"}},
			"6":{"7":{"id":"1","text":"Correcto"}},
			"7":{"8":{"id":"1","text":"Correcto"}}
	}
]
*/



Yo necesitaria que el array generado quede armado de la siguiente manera

{"id":10,"Legajo":"15","Apellido":"mm",
"1":{"id":"1","text":"Correcto"},
"2":{"id":"1","text":"Correcto"},
........
}

si que tenga el elemento 0 .

Por favor , agradezco cualquier ayuda

Saludos.
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 Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

combinar Array asociativos

Publicado por Julio (488 intervenciones) el 20/02/2020 15:53:01
Hola.

No sé muy bien cómo quieres montar ese array, pero prueba esto:

1
$elementos[$i] = array($i => array('id' => '1', 'text'=>'Correcto') );

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

combinar Array asociativos

Publicado por Diego (8 intervenciones) el 20/02/2020 16:08:29
Hola, Desde ya agradezco tu pronta respuesta.

te comento que probe como me dijiste pero me sigue devolviendo lo mismo .

Has observado que cuando haces un array_merge te genera automaticamente un indice que va de 0 a 7 para mi caso , yo lo que necesitaria es eliminar este indice .
Para ejemplificarte te paso el array completo como deberia quedar
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
// Este es el Resultado Obtenido del script
[{"id":10,"Legajo":"15","Apellido":"mm",
    "0":{"1":{"id":"1","text":"Correcto"}},
    "1":{"2":{"id":"1","text":"Correcto"}},
    "2":{"3":{"id":"1","text":"Correcto"}},
    "3":{"4":{"id":"1","text":"Correcto"}},
    "4":{"5":{"id":"1","text":"Correcto"}},
    "5":{"6":{"id":"1","text":"Correcto"}},
    "6":{"7":{"id":"1","text":"Correcto"}},
    "7":{"8":{"id":"1","text":"Correcto"}}
  }
]
 
// Este Array es que necesito
[{"id":10,"Legajo":"15","Apellido":"mm",
    "1":{"id":"1","text":"Correcto"},
    "2":{"id":"1","text":"Correcto"},
    "3":{"id":"1","text":"Correcto"},
    "4":{"id":"1","text":"Correcto"},
    "5":{"id":"1","text":"Correcto"},
    "6":{"id":"1","text":"Correcto"},
    "7":{"id":"1","text":"Correcto"},
    "8":{"id":"1","text":"Correcto"}
  }
]
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 Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

combinar Array asociativos

Publicado por Julio (488 intervenciones) el 20/02/2020 16:28:18
Vaya, muy interesante. Parece ser que array_merge está encontrando un índice '1', luego un '2' y los transforma en numéricos empezando desde el 0 además. ¿Por qué lo hace así? No tengo ni idea, pero la cuestión es que te está transformando esos strings en int. Prueba a ponerle un índice textual en el for y verás como no sucede.

En fin, para hacer lo que quieres, ¿por qué no los vas uniendo de antemano sin usar array_merge?

1
2
3
4
5
6
$datos = array('id' => 10 , 'Legajo' => '15', 'Apellido' => 'mm');
for ($i=1; $i<= 8 ; $i++) {
    $datos[$i] = array($i => array('id' => '1', 'text'=>'Correcto') );
}
 
echo json_encode($datos);

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

combinar Array asociativos

Publicado por Diego (8 intervenciones) el 20/02/2020 18:44:44
Es correcto Julio , pero fijate que sigue el indice , y yo necesitaria de que no esté.
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 Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

combinar Array asociativos

Publicado por Julio (488 intervenciones) el 20/02/2020 19:02:12
Me he perdido. ¿Qué índice sigue ahora y qué necesitas que no esté?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

combinar Array asociativos

Publicado por diego (8 intervenciones) el 20/02/2020 19:13:01
Julio, perdon por molestarte

fijate , del script que me pasaste me devuelve los siguiente

1
{"id":10,"Legajo":"15","Apellido":"mm","1":{"1":{"id":"1","text":"Correcto"}},"2":{"2":{"id":"1","text":"Correcto"}}, ... }

y lo que necesito es

1
{"id":10,"Legajo":"15","Apellido":"mm","1":{"id":"1","text":"Correcto"},"2":{"id":"1","text":"Correcto"}, ... }

observa que en el ej de arriba tenes el indice "1" que contiene el elemento "1" y a su vez este contiene un array con dos elementos id y text

necesitaria que no exista ese indice que directamente sea el elemento 1 y su array con id y text , y asi sucesivamente.


Gracias
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 Julio
Val: 1.658
Plata
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

combinar Array asociativos

Publicado por Julio (488 intervenciones) el 20/02/2020 20:56:12
Ah vale, eso es porque he copiado tu forma, que ya salía así y pensaba que era lo que querías. Entonces:

1
2
3
4
5
6
$datos = array('id' => 10 , 'Legajo' => '15', 'Apellido' => 'mm');
for ($i=1; $i<= 8 ; $i++) {
    $datos[$i] = array('id' => '1', 'text'=>'Correcto');
}
 
echo json_encode($datos);

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
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

combinar Array asociativos

Publicado por diego (8 intervenciones) el 21/02/2020 12:18:25
Gracias Julio , ahora asi , al final me termine complicando solo probando merge y push .

Gracias Julio
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