Foros del Web » Programando para Internet » PHP »

Saber cuanto estoy en el ultimo registro de un foreach

Estas en el tema de Saber cuanto estoy en el ultimo registro de un foreach en el foro de PHP en Foros del Web. Hola. En un foreach que recorre un array de n registros, no encuentro una función que me diga que el registro actual del foreach es ...
  #1 (permalink)  
Antiguo 24/06/2013, 15:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Saber cuanto estoy en el ultimo registro de un foreach

Hola. En un foreach que recorre un array de n registros, no encuentro una función que me diga que el registro actual del foreach es el último.

¿Me podreis decir cual puedo usar?.

Gracias.
  #2 (permalink)  
Antiguo 24/06/2013, 15:14
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Saber cuanto estoy en el ultimo registro de un foreach

Primero repasemos....... puedes si quieres chequear asi...pero estar preguntando por cada ciclo, es INEFICIENTE:

Código PHP:
<?php
$letras 
= array('a','b','c');

$tot count($letras);

foreach (
$letras as $key=>$letra)
{
     echo 
"[{$key}] =  {$letra} <br/>";
    if (
$key == $tot-1)
        echo 
'Ultimo ciclado';
}

Puede claro ciclar tambien con iteradores y si quisieras al final preguntas IF (valid()) y pues si te da FALSE ... es la misma historia

Código PHP:
<?php
$letras 
= array('a','b','c');

$obj = new ArrayObject$letras );
$it $obj->getIterator();

echo 
"Son: " $obj->count() . " elementos<p/>";

while( 
$it->valid() )
{
    echo 
"[{$it->key()}] =  {$it->current()} <br/>";
    
$it->next();
}
y otra variacion, mas directa:

Código PHP:
<?php
$letras 
= array('a','b','c');

$it = new ArrayIterator $letras );

while( 
$it->valid() )
{
    echo 
"[{$it->key()}] =  {$it->current()} <br/>";
    
$it->next();
}
Si tu quieres puedes terminar de ciclar ANTES ......


Código PHP:
<?php
$letras 
= array('a','b','c');

$tot count($letras);

for (
$i=0;$i<$tot-1;$i++)
{
   (
algo)
}
(
algo distinto)
Ejemplo:

Código PHP:
<?php
$letras 
= array('a','b','c');

$tot count($letras);
$cadena null;

for (
$i=0;$i<$tot-1;$i++)
{
   
$cadena .= $letras[$i].'+'// algo
}
$cadena .= $letras[$i];  // algo parecido

echo $cadena;  // 'a+b+c'
__________________
Salu2!

Última edición por Italico76; 24/06/2013 a las 18:23
  #3 (permalink)  
Antiguo 25/06/2013, 00:20
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: Saber cuanto estoy en el ultimo registro de un foreach

HOla. Gracias por responderme. Creo que me quedaré la última opción, aunque pensé que habría una funcion php que haría el trabajo.

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