Foros del Web » Programando para Internet » PHP »

Generar Array multidimensional e insertarle valores

Estas en el tema de Generar Array multidimensional e insertarle valores en el foro de PHP en Foros del Web. Hola, resulta que tengo un XML con ésta estructura: Código: <productos> <producto> <nombre>Nombre</nombre> <descripcion>Esta es la descripcion</descripcion> <fabricante>Esta es la descripcion</fabricante> </producto> <producto> <nombre>Nombre</nombre> <descripcion>Esta ...
  #1 (permalink)  
Antiguo 21/04/2009, 07:15
 
Fecha de Ingreso: marzo-2007
Mensajes: 10
Antigüedad: 17 años, 1 mes
Puntos: 0
Generar Array multidimensional e insertarle valores

Hola, resulta que tengo un XML con ésta estructura:

Código:
<productos>
	<producto>
		<nombre>Nombre</nombre>
		<descripcion>Esta es la descripcion</descripcion>
		<fabricante>Esta es la descripcion</fabricante>
	</producto>
	<producto>
		<nombre>Nombre</nombre>
		<descripcion>Esta es la descripcion</descripcion>
		<fabricante>Esta es la descripcion</fabricante>
	</producto>
	<producto>
		<nombre>Nombre</nombre>
		<descripcion>Esta es la descripcion</descripcion>
		<fabricante>Esta es la descripcion</fabricante>
	</producto>
</productos>
Con Simplexml logré exitosamente extraer los datos de cada producto con un simple foreach pero lo que yo quiero hacer ahora es guardar los datos que extraigo del xml en un array multidimensional con la misma estructura del xml.

Algo asi:

Código PHP:
$inventario = array (


    
'productos' => array (

        
'producto' => array (


            
'nombre' => 'nombredelproducto',
            
'descripcion' => 'descripciondelproducto',
            
'fabricante' => 'fabricantedelproducto'

        
),

        
'producto' => array (


            
'nombre' => 'nombredelproducto',
            
'descripcion' => 'descripciondelproducto',
            
'fabricante' => 'fabricantedelproducto'

        
),

        
'producto' => array (


            
'nombre' => 'nombredelproducto',
            
'descripcion' => 'descripciondelproducto',
            
'fabricante' => 'fabricantedelproducto'

        
)

    )

); 
Alguna idea ? gracias desde ya ;)

Última edición por Ruben S.; 21/04/2009 a las 09:04
  #2 (permalink)  
Antiguo 21/04/2009, 08:29
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: Generar Array multidimensional e insertarle valores

si esta bien asi, solamente q debes cambiar donde dice
'productos' => array() ( por 'productos' => array ( tienes unos () de mas en todos los arrays
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 21/04/2009, 09:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 10
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Generar Array multidimensional e insertarle valores

Gracias por la corrección emiliodeg, me equivoqué en eso

Ya lo correjí.

De todas formas, alguna idea de como transformar el xml en su clon en array multidimensional ?

Gracias!
  #4 (permalink)  
Antiguo 21/04/2009, 09:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Generar Array multidimensional e insertarle valores

¿Haz probado usar SimpleXML?

Saludos.
  #5 (permalink)  
Antiguo 21/04/2009, 09:23
 
Fecha de Ingreso: marzo-2007
Mensajes: 10
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Generar Array multidimensional e insertarle valores

GatorV sí, de hecho puse en el primer post q extraigo los datos sin problemas con SimpleXML, pero no quedan en un array con el formato del XML porque nosé como hacerlo...

Alguna idea ? gracias!
  #6 (permalink)  
Antiguo 21/04/2009, 10:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Generar Array multidimensional e insertarle valores

Pues vas a tener que hacer un parser, donde vayas leyendo el nodo desde SimpleXML y lo vayas asignando a un array, así te puede quedar un array como el que esperas.

Pero como te comento "magicamente" no se puede hacer, igual si buscas en Google un XMLToArray o algo por el estilo.

Saludos.
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 18:14.