Foros del Web » Programando para Internet » PHP »

foreach

Estas en el tema de foreach en el foro de PHP en Foros del Web. Como puedo comprobar si es el ultimo registro que se esta recorriendo en el foreach...
  #1 (permalink)  
Antiguo 28/02/2012, 18:02
 
Fecha de Ingreso: junio-2009
Mensajes: 145
Antigüedad: 15 años, 4 meses
Puntos: 0
foreach

Como puedo comprobar si es el ultimo registro que se esta recorriendo en el foreach
  #2 (permalink)  
Antiguo 28/02/2012, 18:41
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: foreach

si es una matriz regular, antes de entrar cuentas los elementos (count), dentro del foreach deberás tener un contador, y con ello podrás verificar si te encuentras en el último ciclo.
  #3 (permalink)  
Antiguo 28/02/2012, 18:46
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: foreach

También puedes usar la función end o puedes usar la función array_pop

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 28/02/2012, 18:47
 
Fecha de Ingreso: junio-2009
Mensajes: 145
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: foreach

gracias ocp001a

soy algo novato

tengo lo sig si te entendi bien lo puedo hacer asi

$ingredientes= array(
'id_receta' => $row['id_receta'],
'nombre' => $row['nombre'],
'url_foto' => $row['url_foto'],

);

$contador = count($ingredientes);

foreach($ingredientes as $k => $V)
{

}

pero como compruebo dentro del foreach,

y andresdzphp me podrias esplicar con un ejemplo de del end
  #5 (permalink)  
Antiguo 28/02/2012, 18:54
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: foreach

Si realmente tu arreglo es así, con sólo comprobar la clave:

if($k=='url_foto')

Sin embargo, imagino que tendrás un arreglo de arreglos, algo así como
$ingredientes[]= array(
'id_receta' => $row['id_receta'],
'nombre' => $row['nombre'],
'url_foto' => $row['url_foto'],
);

En tal caso, sí te serviría el count:
Código PHP:
Ver original
  1. $cantidad=count($ingredientes)-1;//count devuelve la cantidad de elementos, pero la última posición será una menos
  2. foreach($ingredientes as $i=>$ingrediente)
  3.    if($i==$cantidad)
  4.        .........
  #6 (permalink)  
Antiguo 28/02/2012, 18:57
 
Fecha de Ingreso: junio-2009
Mensajes: 145
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: foreach

gracias compañeros
  #7 (permalink)  
Antiguo 28/02/2012, 19:07
 
Fecha de Ingreso: junio-2009
Mensajes: 145
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: foreach

Ya aprovechando haber si me puedes ayudar ene esta en un valor del array paso una cadena que viene de un campo de sql server un tipo varchar(2000), el problemas es q a la hora de imprimir la variable me corta el texto que es algo largo como 800 caracteres no se si haya una limitancia a la hora de guardar texto en un array espero haberme explicado
  #8 (permalink)  
Antiguo 28/02/2012, 19:27
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: foreach

Tendrías que colocar el código que manejas, ya que en principio, el único límite para almacenar datos (cadenas, números etc) en arreglos sólo está limitada por la memoria asignada para php, en el php.ini.
  #9 (permalink)  
Antiguo 28/02/2012, 19:35
 
Fecha de Ingreso: junio-2009
Mensajes: 145
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: foreach

tengo una clase donde defino la siguiente funcion

function RecetaPorID($id_receta)
{

$query = mssql_init("ps_RecetaXId");

mssql_bind($query,"@id_receta",$id_receta,SQLINT4) ;

$exec = mssql_execute($query);

$result = "";

$row = mssql_fetch_array($exec);

$result = array(

'procedimiento' => utf8_encode($row['procedimiento'])
);


return $result;
}

en un archivo mando a llamar mi clase

$ejemplo = miclase();

$variable = $ejemplo->RecetaPorID(1);

foreach($variable as $k => $v)
{
echo $v['procedimiento'];
}

la cadena de la base de datos es como de 800 caracteres pero me lo corta como a la mitad

Etiquetas: foreach, registro
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:12.