Foros del Web » Programando para Internet » PHP »

Consulta recuperar datos array

Estas en el tema de Consulta recuperar datos array en el foro de PHP en Foros del Web. Hola, Tengo una duda, algo estoy haciendo mal. Recorro un xml mediante un parser php, pero en un punto no puedo recuperar bien los nombres ...
  #1 (permalink)  
Antiguo 08/11/2010, 03:02
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Consulta recuperar datos array

Hola,

Tengo una duda, algo estoy haciendo mal. Recorro un xml mediante un parser php, pero en un punto no puedo recuperar bien los nombres que guardo en un array, y algo estoy haciendo mal pero no sé el qué.

El xml me presenta en un primer momento los participantes en un evento deportivo con su ID y su NAME, entonces cerramos 2 foreach. Luego en el siguiente escalón del foreach presenta varios datos y presenta las cotizaciones de cada participante y el PARTICIPANTID, que coincide con el ID que me han dado más arriba, pero no logro entonces recuperar el NAME cuando veo que el ID y el PARTICIPANTID coinciden. Ese cachito de líneas serían:

Código:
foreach ($liga->Participants as $participantes) {
	foreach ($participantes->Participant as $equipo) {
		$id = $equipo["id"];
		$nombre = $equipo["name"];
		$arr = array("$id" => "$nombre");
		
	}
}

foreach ($liga->TournamentOdds as $bett) {
	foreach ($bett->BO as $tipo) {
		foreach ($tipo->OD as $cuo) {
				
		$partid = $cuo["participantId"];
		$opcion = $arr["$partid"];
		
		echo $opcion."<br>";
					
		}
	}
}


Ahí el echo $opcion no me muestra nada... ¿Qué hago muy mal?

Muchas gracias
  #2 (permalink)  
Antiguo 08/11/2010, 03:13
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Consulta recuperar datos array

intenta a poner: $opcion = $arr[$partid];
  #3 (permalink)  
Antiguo 08/11/2010, 03:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Consulta recuperar datos array

Hola Vallu,

Sí, esa es una opción que he intentado ya y nada.

Es que no sé, porque los arrays los guarda bien, porque si hago una prueba antes de entrar en el 2º bucle de por ejemplo echo $arr[28204] me imprime bien el nombre, pero si en cambio está dentro ya del 2º bucle de foreachs, pues no lo recupera.
  #4 (permalink)  
Antiguo 08/11/2010, 04:22
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Consulta recuperar datos array

Pues hagamos comprobaciones. Podrias hacer un print_r($bett) y a ver si te devuelve lo que en teoria ha de dar?
  #5 (permalink)  
Antiguo 08/11/2010, 04:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Consulta recuperar datos array

Hola Vallu,

Sí, en realidad ahora he probado en el echo esto:

echo "------------ ".$opcion." - ".$partid." - ".$cuo."<br>";


E imprime el $cuo, también el $partid (que es el dato que debo linkar con el ID del 1r bucle), pero no el $opcion.

Es como si al cerrar los 2 foreach iniciales, se olvidara de la variable $arr del array, o la anulara, y no hay ningún break ni nada de nada.

¿Igual debería hacer algo como $arr[$id], pero es que no le veo sentido?

Gracias por tu interés.
  #6 (permalink)  
Antiguo 08/11/2010, 05:38
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Consulta recuperar datos array

si dentro del 2º foreach haces un print_r($arr) te devuelve algo?
  #7 (permalink)  
Antiguo 08/11/2010, 06:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Consulta recuperar datos array

Vallu, me estás mostrando la luz.

He probado lo que me dices y me muestra algo así:

( [294422] => Papa Caruso )

1r problema: sólo me guarda el último ID Y NAME dentro del 1r bucle de foreach.
2º problema: me guarda el ID con los corchetes [ ] incorporados.

Este 2º problema no es grave, lo solvento así:

$partid = $cuotas["participantId"];
$partid = str_replace("[", "", $partid);
$partid = str_replace("]", "", $partid);


Y entonces he conseguido que por ejemplo el PAPA CARUSO ese sí me lo muestre en los 2os foreachs con el echo:

echo "------------ ".$opcion." - ".$partid." - ".$cuotas."<br>";

Ahí ahora sí me ha mostrado el $opcion, pero solo para 1 de las opciones.

Entonces todo se reduce al problema 1. Creo que con la luz que me has dado ya lo sacaré..!

Gracias Vallu, mira que había probado 1000 cosas para ver si me mostraba esto o lo otro, pero no me había hecho un echo $arr o print_r($arr)...

  #8 (permalink)  
Antiguo 08/11/2010, 06:17
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Consulta recuperar datos array

Hehe, siempre viene bien una opinión externa, tampoco es que haya hecho mucho... Ahora a ver si te puedo ayudar con el 1º problema con el poco tiempo que me queda para dejar el curro :S
  #9 (permalink)  
Antiguo 08/11/2010, 06:18
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Consulta recuperar datos array

Prueba a poner $arr. = array("$id" => "$nombre");

Pon el punto despues de $arr, a ver si asi funciona :P
  #10 (permalink)  
Antiguo 08/11/2010, 09:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 177
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Consulta recuperar datos array

Pues aún estoy sin conseguirlo Vallu. Con el . he probado pero no se lo come.

Está claro que es que renombra la variable $arr cada vez e inicia de 0, por eso sólo guarda el último ID => NAME

Seguimos intentándolo! En cuanto lo tenga lo posteo por aquí!
  #11 (permalink)  
Antiguo 09/11/2010, 03:37
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Consulta recuperar datos array

El problema que tienes es que cada vez dentro del foreach declaras $arr como un array, y al declararlo se borra todo y se declara desde 0. A ver si puedes declararlo fuera del foreach y despues irlo rellenando.
  #12 (permalink)  
Antiguo 09/11/2010, 04:55
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Consulta recuperar datos array

A ver, prueba esto a ver que tal funciona:

Código PHP:
$arr = array();
foreach (
$liga->Participants as $participantes) {
    foreach (
$participantes->Participant as $equipo) {
        
$id $equipo["id"];
        
$nombre $equipo["name"];
        
$arr[$id] = $nombre;        
    }

Ya dirás alguna cosa de si funciona o revienta por algun sitio.

Etiquetas: parser, xml, php-mysql
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 23:18.