Foros del Web » Programando para Internet » PHP »

Problema con foreach

Estas en el tema de Problema con foreach en el foro de PHP en Foros del Web. Código: <? foreach($items[grupo][subgrupo] as $z) { ?> <? print "<a href=\"/dir/index.php?busq=".$z[Nombre]."\">".$z[Nombre]."</a><br>"; ?> <? } ?> Se produce un error cuando en el array hay un ...
  #1 (permalink)  
Antiguo 16/03/2005, 12:10
 
Fecha de Ingreso: febrero-2003
Mensajes: 67
Antigüedad: 21 años, 1 mes
Puntos: 0
Problema con foreach

Código:
 
 <?   
	   foreach($items[grupo][subgrupo] as $z)
	   { ?>
	<? print "<a href=\"/dir/index.php?busq=".$z[Nombre]."\">".$z[Nombre]."</a><br>"; ?>
	<? } ?>
Se produce un error cuando en el array hay un sólo elemento [Nombre], si hay más de uno, funciona todo correcto.
El error consiste en imprimir sólo el primer carácter o sea que si nombre es Luis, sólo imprime L

¿Cómo se puede solucionar?
  #2 (permalink)  
Antiguo 16/03/2005, 14:03
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
que es nombre?? que estructura tiene tu vector?
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 17/03/2005, 04:10
 
Fecha de Ingreso: febrero-2003
Mensajes: 67
Antigüedad: 21 años, 1 mes
Puntos: 0
Estoy sacandolo de archivo en XML

La estructura es:
<Grupo>
<Subgrupo>
<Id>AXGHJ789</Id>
<Nombre>Primer Nombre</Nombre>
</Subgrupo>
<Subgrupo>
<Id>PXDAZ8UF</tId>
<Nombre>Segundo Nombre</Nombre>
</Subgrupo>

Como ya comentaba, si hay más de un subgrupo, no hay problemas. Sólo existen cuando sólo hay un subgrupo.
  #4 (permalink)  
Antiguo 17/03/2005, 05:09
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 19 años, 6 meses
Puntos: 7
Creo que el problema debe estar en la función que convierte en array el archivo XML . Tendríamos que ver el código anterior para hacernos una idea. Probablemente anteriormente en algún sitio has puesto que coja el primer elemento de la variable y cuando se encuentra un string y no un array lo que hace es coger la primera letra de la cadena.

Por ejemplo, si yo hago esto imprimirá p:
Código PHP:
<?php
$patata 
"patata";
print 
$patata[0];
?>
De todas formas cambia la forma de acceder a $z[Nombre] por $z['Nombre'], aunque funcione no es una forma correcta de ponerlo.
  #5 (permalink)  
Antiguo 17/03/2005, 07:01
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Cita:
Iniciado por wood
Estoy sacandolo de archivo en XML

La estructura es:
<Grupo>
<Subgrupo>
<Id>AXGHJ789</Id>
<Nombre>Primer Nombre</Nombre>
</Subgrupo>
<Subgrupo>
<Id>PXDAZ8UF</tId>
<Nombre>Segundo Nombre</Nombre>
</Subgrupo>

Como ya comentaba, si hay más de un subgrupo, no hay problemas. Sólo existen cuando sólo hay un subgrupo.
Sigo sin intender...nombre es una constante? Por que no mostras como lo generas, asi se comprende mejor.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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 02:18.